code: def setUp(self):
      super().setUp()
  
      self._executor_invocation = pipeline_pb2.ExecutorInput()
      self._executor_invocation.outputs.output_file = (
          _TEST_OUTPUT_METADATA_JSON
      )
      self._executor_invocation.inputs.parameters[
          "input_base"
      ].string_value = _TEST_INPUT_DIR
      self._executor_invocation.inputs.parameters[
          "output_config"
      ].string_value = "{}"
      self._executor_invocation.inputs.parameters[
          "input_config"
      ].string_value = json_format.MessageToJson(
          example_gen_pb2.Input(
              splits=[
                  example_gen_pb2.Input.Split(
                      name="s1", pattern="span{SPAN}/split1/*"
                  ),
                  example_gen_pb2.Input.Split(
                      name="s2", pattern="span{SPAN}/split2/*"
                  ),
              ]
          )
      )
      self._executor_invocation.outputs.artifacts[
          "examples"
      ].artifacts.append(
          pipeline_pb2.RuntimeArtifact(
              type=pipeline_pb2.ArtifactTypeSchema(
                  instance_schema=compiler_utils.get_artifact_schema(
                      standard_artifacts.Examples
                  )
              )
          )
      )
  
      self._executor_invocation_from_file = fileio.open(
          os.path.join(
              os.path.dirname(__file__),
              "testdata",
              "executor_invocation.json",
          ),
          "r",
      ).read()
  
      logging.debug(
          "Executor invocation under test: %s",
          self._executor_invocation_from_file,
      )
      self._expected_result_from_file = fileio.open(
          os.path.join(
              os.path.dirname(__file__),
              "testdata",
              "expected_output_metadata.json",
          ),
          "r",
      ).read()
      logging.debug(
          "Expecting output metadata JSON: %s",
          self._expected_result_from_file,
      )
  
      # Change working directory after all the testdata files have been read.
      self.enter_context(
          test_case_utils.change_working_dir(self.tmp_dir)
      )
  
      fileio.makedirs(os.path.dirname(_TEST_INPUT_DIR))
  
file_path: tfx/tfx/orchestration/kubeflow/v2/file_based_example_gen/driver_test.py
imports: import json
  import os
  from absl import logging
  from kfp.pipeline_spec import pipeline_spec_pb2
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.orchestration.kubeflow.v2 import compiler_utils
  from tfx.orchestration.kubeflow.v2.file_based_example_gen import driver
  from tfx.proto import example_gen_pb2
  from tfx.types import standard_artifacts
  from tfx.utils import io_utils
  from tfx.utils import test_case_utils
  from google.protobuf import json_format
label_desc: Use image node_id 1 for calling the RunDriverTest obj's underlying member method code with example usage: obj.setUp() without return types