code: def setUp(self):
      super().setUp()
      self._source_data_dir = os.path.join(
          os.path.dirname(
              os.path.dirname(
                  os.path.dirname(os.path.dirname(__file__))
              )
          ),
          "components",
          "testdata",
      )
      self._output_data_dir = os.path.join(
          os.environ.get(
              "TEST_UNDECLARED_OUTPUTS_DIR", self.get_temp_dir()
          ),
          self._testMethodName,
      )
      fileio.makedirs(self._output_data_dir)
      self._model_export = standard_artifacts.Model()
      self._model_export.uri = os.path.join(
          self._source_data_dir, "trainer/current"
      )
      self._model_blessing = standard_artifacts.ModelBlessing()
      self._input_dict = {
          standard_component_specs.MODEL_KEY: [self._model_export],
          standard_component_specs.MODEL_BLESSING_KEY: [
              self._model_blessing
          ],
      }
  
      self._model_push = standard_artifacts.PushedModel()
      self._model_push.uri = os.path.join(
          self._output_data_dir, "model_push"
      )
      fileio.makedirs(self._model_push.uri)
      self._output_dict = {
          standard_component_specs.PUSHED_MODEL_KEY: [self._model_push],
      }
      # Dict format of exec_properties. custom_config needs to be serialized
      # before being passed into Do function.
      self._exec_properties = {
          "custom_config": {
              constants.SERVING_ARGS_KEY: {
                  "model_name": "model_name",
                  "project_id": "project_id",
              },
          },
          "push_destination": None,
      }
      self._container_image_uri_vertex = "gcr.io/path/to/container"
      # Dict format of exec_properties for Vertex. custom_config needs to be
      # serialized before being passed into Do function.
      self._exec_properties_vertex = {
          "custom_config": {
              constants.SERVING_ARGS_KEY: {
                  "endpoint_name": "endpoint_name",
                  "project_id": "project_id",
              },
              constants.VERTEX_CONTAINER_IMAGE_URI_KEY: self._container_image_uri_vertex,
              constants.VERTEX_REGION_KEY: "us-central1",
              constants.ENABLE_VERTEX_KEY: True,
          },
          "push_destination": None,
      }
      self._executor = executor.Executor()
  
imports: import copy
  import os
  from typing import Any, Dict
  from unittest import mock
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.extensions.google_cloud_ai_platform import constants
  from tfx.extensions.google_cloud_ai_platform.pusher import executor
  from tfx.types import standard_artifacts
  from tfx.types import standard_component_specs
  from tfx.utils import json_utils
  from tfx.utils import name_utils
  from tfx.utils import telemetry_utils
label_desc: Use image node_id 1 for calling the ExecutorTest obj's underlying member method code with example usage: obj.setUp() without return types