class_docstr: Abstract class for integration testing concrete Metadata implementations.
  
  Subclasses should override metadata() to return an instance of Metadata that
  has not been entered.
class_docstr_tok: ["Abstract","class","for","integration","testing","concrete","Metadata","implementations",".","Subclasses","should","override","metadata","(",")","to","return","an","instance","of","Metadata","that","has","not","been","entered","."]
code: def testRegisterExecutionUpdatedExecutionType(self):
      with self.metadata() as m:
          contexts_one = m.register_pipeline_contexts_if_not_exists(
              self._pipeline_info
          )
          contexts_two = m.register_pipeline_contexts_if_not_exists(
              self._pipeline_info3
          )
  
          # Puts in execution with less columns needed in MLMD schema first and
          # puts in execution with more columns needed next. Verifies the schema
          # update will not be breaking change.
          exec_properties_one = {"arg_one": 1}
          exec_properties_two = {"arg_one": 1, "arg_two": 2}
          execution_one = m.register_execution(
              input_artifacts={},
              exec_properties=exec_properties_one,
              pipeline_info=self._pipeline_info,
              component_info=self._component_info,
              contexts=contexts_one,
          )
          execution_two = m.register_execution(
              input_artifacts={},
              exec_properties=exec_properties_two,
              pipeline_info=self._pipeline_info3,
              component_info=self._component_info3,
              contexts=contexts_two,
          )
          [execution_one, execution_two] = m.store.get_executions_by_id(
              [execution_one.id, execution_two.id]
          )
          # Skip verifying time sensitive fields.
          execution_one.ClearField("type_id")
          execution_one.ClearField("type")
          execution_one.ClearField("create_time_since_epoch")
          execution_one.ClearField("last_update_time_since_epoch")
          self.assertProtoEquals(
              """
          id: 1
          last_known_state: RUNNING
          properties {
            key: "state"
            value {
              string_value: "new"
            }
          }
          properties {
            key: "pipeline_name"
            value {
              string_value: "my_pipeline"
            }
          }
          properties {
            key: "pipeline_root"
            value {
              string_value: "/tmp"
            }
          }
          properties {
            key: "run_id"
            value {
              string_value: "my_run_id"
            }
          }
          properties {
            key: "component_id"
            value {
              string_value: "my_component"
            }
          }
          properties {
            key: "arg_one"
            value {
              string_value: "1"
            }
          }""",
              execution_one,
          )
          # Skip verifying time sensitive fields.
          execution_two.ClearField("type_id")
          execution_two.ClearField("type")
          execution_two.ClearField("create_time_since_epoch")
          execution_two.ClearField("last_update_time_since_epoch")
          self.assertProtoEquals(
              """
          id: 2
          last_known_state: RUNNING
          properties {
            key: "state"
            value {
              string_value: "new"
            }
          }
          properties {
            key: "pipeline_name"
            value {
              string_value: "my_pipeline2"
            }
          }
          properties {
            key: "pipeline_root"
            value {
              string_value: "/tmp"
            }
          }
          properties {
            key: "run_id"
            value {
              string_value: "my_run_id"
            }
          }
          properties {
            key: "component_id"
            value {
              string_value: "my_component"
            }
          }
          properties {
            key: "arg_one"
            value {
              string_value: "1"
            }
          }
          properties {
            key: "arg_two"
            value {
              string_value: "2"
            }
          }""",
              execution_two,
          )
  
imports: from typing import Mapping
  import tensorflow
  from tfx.orchestration import data_types
  from tfx.orchestration import metadata
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types.artifact import ArtifactState
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 8 for calling the MetadataTest obj's underlying member method code with example usage: obj.testRegisterExecutionUpdatedExecutionType() without return types