code: def testResolveChannels(self):
      a1 = self.create_artifacts(1)
      x = self.parse_input_spec(
          """
        channels {
          artifact_query {
            type {
              name: "MyArtifact"
            }
          }
        }
      """
      )
      self.mock_channel_resolution_result(x, [a1])
      node_inputs = pipeline_pb2.NodeInputs(inputs={"x": x})
  
      result = node_inputs_resolver.resolve(
          self._mlmd_handle, node_inputs
      )
  
      self.assertEqual(result, [{"x": [a1]}])
  
imports: from typing import Set
  from unittest import mock
  import tensorflow
  from tfx.orchestration.portable.input_resolution import exceptions
  from tfx.orchestration.portable.input_resolution import input_graph_resolver
  from tfx.orchestration.portable.input_resolution import node_inputs_resolver
  from tfx.orchestration.portable.input_resolution import partition_utils
  from tfx.orchestration.portable.input_resolution import channel_resolver
  from tfx.proto.orchestration import pipeline_pb2
  import tfx.types
  from tfx.types import channel_utils
  from tfx.utils import test_case_utils
  from google.protobuf import text_format
label_desc: Use image node_id 9 for calling the NodeInputsResolverTest obj's underlying member method code with example usage: obj.testResolveChannels() without return types