code: def testArtifactTypeRoundTripUnknownArtifactClass(self, mock_warning):
      mlmd_artifact_type = copy.deepcopy(
          standard_artifacts.Examples._get_artifact_type()
      )  # pylint: disable=protected-access
      self.assertIs(
          standard_artifacts.Examples,
          artifact_utils.get_artifact_type_class(mlmd_artifact_type),
      )
      mlmd_artifact_type.name = "UnknownTypeName"
  
      reconstructed_class = artifact_utils.get_artifact_type_class(
          mlmd_artifact_type
      )
      mock_warning.assert_called_once()
  
      self.assertIsNot(standard_artifacts.Examples, reconstructed_class)
      self.assertTrue(
          issubclass(reconstructed_class, artifact.Artifact)
      )
      self.assertEqual("UnknownTypeName", reconstructed_class.TYPE_NAME)
      self.assertEqual(
          mlmd_artifact_type, reconstructed_class._get_artifact_type()
      )
  
imports: import copy
  from unittest import mock
  from absl import logging
  import tensorflow
  from tfx.types import artifact
  from tfx.types import artifact_utils
  from tfx.types import standard_artifacts
  from tfx.types import system_artifacts
  from tfx.types import value_artifact
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 7 for calling the ArtifactUtilsTest obj's underlying member method code with example usage: obj.testArtifactTypeRoundTripUnknownArtifactClass(mock_warning) without return types