code: def testPartiallySubstituteRuntimeParameter(self):
      pipeline = pipeline_pb2.Pipeline()
      expected = pipeline_pb2.Pipeline()
      self.load_proto_from_text(
          os.path.join(
              self._testdata_dir,
              "pipeline_with_runtime_parameter.pbtxt",
          ),
          pipeline,
      )
      self.load_proto_from_text(
          os.path.join(
              self._testdata_dir,
              "pipeline_with_runtime_parameter_partially_substituted.pbtxt",
          ),
          expected,
      )
      parameters = runtime_parameter_utils.substitute_runtime_parameter(
          pipeline,
          {
              "context_name_rp": "my_context",
          },
      )
      self.assertProtoEquals(pipeline, expected)
      self.assertEqual(len(parameters), 3)
      self.assertEqual(parameters["context_name_rp"], "my_context")
      self.assertEqual(parameters["prop_one_rp"], 1)
      self.assertIsNone(parameters["prop_two_rp"])
  
file_path: tfx/tfx/orchestration/portable/runtime_parameter_utils_test.py
imports: import os
  import tensorflow
  from tfx.orchestration.portable import runtime_parameter_utils
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import test_case_utils
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 3 for calling the RuntimeParameterUtilsTest obj's underlying member method code with example usage: obj.testPartiallySubstituteRuntimeParameter() without return types