code: def testMakeProtoPlaceholder_PlusItemGetter(self):
      actual = resolve(
          _ExecutionInvocation(
              pipeline_node=ph.make_proto(
                  pipeline_pb2.PipelineNode(),
                  upstream_nodes=[
                      ph.execution_invocation().pipeline_run_id
                      + "-foo",
                  ],
              ),
              # It's a little silly, but it's something that should work:
              # Constructing an entire proto through placeholders, only to
              # read out a single field from it:
          ).pipeline_node.upstream_nodes[0]
      )
      self.assertProtoEquals("test-run-id-foo", actual)
  
imports: import base64
  import functools
  from typing import Any, Dict, Optional, Type, TypeVar
  import tensorflow
  from tfx.dsl.compiler import placeholder_utils
  from tfx.dsl.placeholder import placeholder
  from tfx.dsl.placeholder import proto_placeholder
  from tfx.orchestration.portable import data_types
  from tfx.proto.orchestration import execution_invocation_pb2
  from tfx.proto.orchestration import pipeline_pb2
  from google.protobuf import message
  from google.protobuf import text_format
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 37 for calling the ProtoPlaceholderTest obj's underlying member method code with example usage: obj.testMakeProtoPlaceholder_PlusItemGetter() without return types