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 testGetExecutionStates(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_info
          )
          contexts_three = m.register_pipeline_contexts_if_not_exists(
              self._pipeline_info2
          )
  
          self.assertListEqual(
              [self._pipeline_info.run_id, self._pipeline_info2.run_id],
              self._get_all_runs(m, "my_pipeline"),
          )
  
          m.register_execution(
              input_artifacts={},
              exec_properties={},
              pipeline_info=self._pipeline_info,
              component_info=self._component_info,
              contexts=contexts_one,
          )
          m.publish_execution(component_info=self._component_info)
          m.register_execution(
              input_artifacts={},
              exec_properties={},
              pipeline_info=self._pipeline_info,
              component_info=self._component_info2,
              contexts=contexts_two,
          )
          m.register_execution(
              input_artifacts={},
              exec_properties={},
              pipeline_info=self._pipeline_info2,
              component_info=self._component_info3,
              contexts=contexts_three,
          )
          states = self._get_execution_states(m, self._pipeline_info)
          self.assertDictEqual(
              {
                  self._component_info.component_id: metadata.EXECUTION_STATE_COMPLETE,
                  self._component_info2.component_id: metadata.EXECUTION_STATE_NEW,
              },
              states,
          )
  
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 15 for calling the MetadataTest obj's underlying member method code with example usage: obj.testGetExecutionStates() without return types