code: def testCustomArtifactMappingFails(self):
      my_artifact_with_property_schema = (
          compiler_utils.get_artifact_schema(_MyArtifactWithProperty)
      )
      self.assertDictEqual(
          yaml.safe_load(my_artifact_with_property_schema),
          yaml.safe_load(_EXPECTED_MY_BAD_ARTIFACT_SCHEMA),
      )
  
      my_artifact_with_property = _MyArtifactWithProperty()
      my_artifact_with_property.int1 = 42
      with self.assertRaisesRegex(KeyError, "Actual property:"):
          _ = compiler_utils.build_output_artifact_spec(
              channel_utils.as_channel([my_artifact_with_property])
          )
  
imports: import os
  from absl.testing import parameterized
  from kfp.pipeline_spec import pipeline_spec_pb2
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.orchestration import data_types
  from tfx.orchestration.kubeflow.v2 import compiler_utils
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.types import standard_artifacts
  from tfx.types.experimental import simple_artifacts
  import yaml
  from google.protobuf import text_format
label_desc: Use image node_id 5 for calling the CompilerUtilsTest obj's underlying member method code with example usage: obj.testCustomArtifactMappingFails() without return types