code: def testCopyFrom(self):
      original = _MyArtifact()
      original.id = 1
      original.uri = "/my/path"
      original.int1 = 111
      original.proto1 = struct_pb2.Value(string_value="abc")
      original.string1 = "111"
      original.set_string_custom_property("my_custom_property", "aaa")
  
      copied = _MyArtifact()
      copied.id = 2
      copied.uri = "/some/other/path"
      copied.int1 = 333
      copied.proto1 = struct_pb2.Value(string_value="xyz")
      copied.set_string_custom_property("my_custom_property", "bbb")
      copied.copy_from(original)
  
      # id should not be overridden.
      self.assertEqual(copied.id, 2)
      self.assertEqual(original.uri, copied.uri)
      self.assertEqual(original.int1, copied.int1)
      self.assertProtoEquals(original.proto1, copied.proto1)
      self.assertEqual(original.string1, copied.string1)
      self.assertEqual(
          original.get_string_custom_property("my_custom_property"),
          copied.get_string_custom_property("my_custom_property"),
      )
  
imports: import json
  import textwrap
  from unittest import mock
  from absl import logging
  import tensorflow
  from tfx.types import artifact
  from tfx.types import system_artifacts
  from tfx.types import value_artifact
  from tfx.utils import json_utils
  from google.protobuf import struct_pb2
  from google.protobuf import json_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 10 for calling the ArtifactTest obj's underlying member method code with example usage: obj.testCopyFrom() without return types