code: def testRunAipTrainingWithDefaultJobId(self):
      aip_executor = (
          ai_platform_training_executor.AiPlatformTrainingExecutor()
      )
  
      # Delete job_id in the exec_properties.
      training_config = json_utils.loads(
          self._exec_properties[
              ai_platform_training_executor.CONFIG_KEY
          ]
      )
      training_config[
          ai_platform_training_executor.JOB_ID_CONFIG_KEY
      ] = None
      self._exec_properties[
          ai_platform_training_executor.CONFIG_KEY
      ] = json_utils.dumps(training_config)
  
      aip_executor.Do(
          input_dict=self._inputs,
          output_dict=self._outputs,
          exec_properties=self._exec_properties,
      )
  
      self._mock_create.assert_called_once()
      print(self._mock_create.call_args[1])
      print(self._mock_create.call_args[1]["body"])
      self.assertEqual(
          "tfx_", self._mock_create.call_args[1]["body"]["job_id"][:4]
      )
  
file_path: tfx/tfx/orchestration/kubeflow/v2/components/experimental/ai_platform_training_executor_test.py
imports: import copy
  from unittest import mock
  from googleapiclient import discovery
  import tensorflow
  from tfx.dsl.component.experimental import placeholders
  from tfx.orchestration.kubeflow.v2.components.experimental import ai_platform_training_executor
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.utils import json_utils
  from tfx.utils import test_case_utils
label_desc: Use image node_id 4 for calling the AiPlatformTrainingExecutorTest obj's underlying member method code with example usage: obj.testRunAipTrainingWithDefaultJobId() without return types