code: def Do(
      self,
      input_dict: Dict[str, List[types.Artifact]],
      output_dict: Dict[str, List[types.Artifact]],
      exec_properties: Dict[str, Any],
  ):
      _executed_components.append(exec_properties[_COMPONENT_NAME])
  
imports: import os
  import tempfile
  from typing import Any, Dict, List
  import absl.testing.absltest
  from tfx import types
  from tfx.dsl.compiler import compiler
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.components.base import executor_spec
  from tfx.orchestration import pipeline
  from tfx.orchestration.local import local_dag_runner
  from tfx.orchestration.metadata import sqlite_metadata_connection_config
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types.component_spec import ChannelParameter
  from tfx.types.component_spec import ExecutionParameter
label_desc: Use image node_id 1 for calling the _FakeExecutor obj's underlying member method code with example usage: obj.Do(input_dict, output_dict, exec_properties) without return types