code: def testInvalidTypeSignatureError(self):
      class PipelineShell(pipeline.Pipeline):
          def transform(self, input_object):
              pass
  
      _ = PipelineShell(str, str)
      _ = PipelineShell({"name": str}, {"name": str})
  
      good_type = str
      for bad_type in [
          123,
          {1: str},
          {"name": 123},
          {"name": str, "name2": 123},
          [str, int],
      ]:
          with self.assertRaises(pipeline.InvalidTypeSignatureError):
              PipelineShell(bad_type, good_type)
          with self.assertRaises(pipeline.InvalidTypeSignatureError):
              PipelineShell(good_type, bad_type)
  
imports: import os
  from absl.testing import absltest
  from magenta.common import testing_lib
  from magenta.pipelines import pipeline
  from magenta.pipelines import statistics
  import tensorflow.compat.v1
label_desc: Use image node_id 7 for calling the PipelineTest obj's underlying member method code with example usage: obj.testInvalidTypeSignatureError() without return types