code: def testUnwrapSimpleChannelPlaceholderRejectsNoChannel(self):
      with self.assertRaisesRegex(
          ValueError, ".*placeholder of shape.*"
      ):
          channel_utils.unwrap_simple_channel_placeholder(
              ph.make_list([])
          )
      with self.assertRaisesRegex(
          ValueError, ".*placeholder of shape.*"
      ):
          channel_utils.unwrap_simple_channel_placeholder(
              ph.input("disallowed")
          )
      with self.assertRaisesRegex(
          ValueError, ".*placeholder of shape.*"
      ):
          channel_utils.unwrap_simple_channel_placeholder(
              ph.output("disallowed")
          )
  
file_path: tfx/tfx/types/channel_utils_test.py
imports: import tensorflow
  from tfx.dsl.placeholder import placeholder
  from tfx.types import artifact
  from tfx.types import channel
  from tfx.types import channel_utils
  from tfx.types import standard_artifacts
label_desc: Use image node_id 9 for calling the ChannelUtilsTest obj's underlying member method code with example usage: obj.testUnwrapSimpleChannelPlaceholderRejectsNoChannel() without return types