code: def test_get_oldest_active_execution_with_external_execution_index(
      self,
  ):
      executions = [
          metadata_store_pb2.Execution(
              id=1,
              create_time_since_epoch=1001,
              last_known_state=metadata_store_pb2.Execution.COMPLETE,
              custom_properties={
                  "__external_execution_index__": metadata_store_pb2.Value(
                      int_value=0,
                  )
              },
          ),
          metadata_store_pb2.Execution(
              id=2,
              create_time_since_epoch=1002,
              last_known_state=metadata_store_pb2.Execution.RUNNING,
              custom_properties={
                  "__external_execution_index__": metadata_store_pb2.Value(
                      int_value=0,
                  )
              },
          ),
          metadata_store_pb2.Execution(
              id=3,
              create_time_since_epoch=1002,
              last_known_state=metadata_store_pb2.Execution.RUNNING,
              custom_properties={
                  "__external_execution_index__": metadata_store_pb2.Value(
                      int_value=1,
                  )
              },
          ),
          metadata_store_pb2.Execution(
              id=4,
              create_time_since_epoch=1003,
              last_known_state=metadata_store_pb2.Execution.NEW,
              custom_properties={
                  "__external_execution_index__": metadata_store_pb2.Value(
                      int_value=0,
                  )
              },
          ),
      ]
  
      oldest = task_gen_utils.get_oldest_active_execution(executions)
      self.assertIsNotNone(oldest)
      self.assertEqual(
          oldest.last_known_state, metadata_store_pb2.Execution.RUNNING
      )
      self.assertEqual(oldest.create_time_since_epoch, 1002)
      self.assertEqual(oldest.id, 2)
      self.assertEqual(
          oldest.custom_properties[
              "__external_execution_index__"
          ].int_value,
          0,
      )
  
imports: import os
  import time
  from unittest import mock
  import uuid
  from absl.testing import parameterized
  import tensorflow
  from tfx import types
  from tfx import version
  from tfx.orchestration import data_types_utils
  from tfx.orchestration import node_proto_view
  from tfx.orchestration.experimental.core import constants
  from tfx.orchestration.experimental.core import pipeline_state
  from tfx.orchestration.experimental.core import task
  from tfx.orchestration.experimental.core import task_gen_utils
  from tfx.orchestration.experimental.core import test_utils
  from tfx.orchestration.experimental.core.testing import test_async_pipeline
  from tfx.orchestration.experimental.core.testing import test_dynamic_exec_properties_pipeline
  from tfx.orchestration import mlmd_connection_manager
  from tfx.orchestration.portable import outputs_utils
  from tfx.orchestration.portable.mlmd import execution_lib
  from tfx.proto.orchestration import execution_result_pb2
  from tfx.proto.orchestration import placeholder_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.utils import status
  from tfx.utils import test_case_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 21 for calling the TaskGenUtilsTest obj's underlying member method code with example usage: obj.test_get_oldest_active_execution_with_external_execution_index() without return types