code: def test_update_external_artifact_type(self):
      artifact_type = metadata_store_pb2.ArtifactType(name="my_type")
      artifact_pb = metadata_store_pb2.Artifact(
          type_id=artifact_type.id
      )
      artifact = types.artifact.Artifact(artifact_type)
      artifact.set_mlmd_artifact(artifact_pb)
      artifact.is_external = True
  
      with self._mlmd_connection as m:
          task_gen_utils.update_external_artifact_type(m, [artifact])
  
          artifact_types_in_local = m.store.get_artifact_types()
          self.assertLen(artifact_types_in_local, 1)
          self.assertEqual("my_type", artifact_types_in_local[0].name)
          # artifact should have the new type id.
          self.assertEqual(
              artifact_types_in_local[0].id, artifact_pb.type_id
          )
  
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 15 for calling the TaskGenUtilsTest obj's underlying member method code with example usage: obj.test_update_external_artifact_type() without return types