class_docstr: Tests for ValueArtifact.
code: def testValueArtifact(self):
      instance = _MyValueArtifact()
      # Test property setters.
      instance.uri = _VALID_URI
      self.assertEqual(_VALID_URI, instance.uri)
  
      with self.assertRaisesRegex(
          ValueError,
          "The artifact value has not yet been read from storage.",
      ):
          instance.value  # pylint: disable=pointless-statement
  
      instance.read()
      instance.value = _STRING_VALUE
      self.assertEqual(_STRING_VALUE, instance.value)
      self.assertEqual(
          0, instance.get_int_custom_property(_IS_NULL_KEY)
      )
      instance.value = None
      self.assertIsNone(instance.value)
      self.assertEqual(
          1, instance.get_int_custom_property(_IS_NULL_KEY)
      )
  
imports: import json
  from unittest import mock
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.types import standard_artifacts
  from tfx.types import system_artifacts
  from tfx.types import value_artifact
  from google.protobuf import json_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 2 for calling the ValueArtifactTest obj's underlying member method code with example usage: obj.testValueArtifact() without return types