code: def testPipelineList(self):
      # Try listing pipelines when there are none.
      result = self.runner.invoke(
          cli_group, ["pipeline", "list", "--engine", "local"]
      )
      self.assertIn("CLI", result.output)
      self.assertIn("Listing all pipelines", result.output)
      self.assertIn("No pipelines to display.", result.output)
  
      # Create pipelines.
      pipeline_name_1 = "chicago_taxi_local"
      pipeline_path_1 = os.path.join(
          self._testdata_dir, "test_pipeline_local_1.py"
      )
      self._valid_create_and_check(pipeline_path_1, pipeline_name_1)
  
      pipeline_name_2 = "chicago_taxi_local_v2"
      pipeline_path_2 = os.path.join(
          self._testdata_dir, "test_pipeline_local_3.py"
      )
      self._valid_create_and_check(pipeline_path_2, pipeline_name_2)
  
      # List pipelines.
      result = self.runner.invoke(
          cli_group, ["pipeline", "list", "--engine", "local"]
      )
      self.assertIn("CLI", result.output)
      self.assertIn("Listing all pipelines", result.output)
      self.assertIn(pipeline_name_1, result.output)
      self.assertIn(pipeline_name_2, result.output)
  
imports: import codecs
  import locale
  import os
  from absl import logging
  from click import testing
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.tools.cli.cli_main import cli_group
  from tfx.utils import io_utils
  from tfx.utils import test_case_utils
label_desc: Use image node_id 7 for calling the CliLocalEndToEndTest obj's underlying member method code with example usage: obj.testPipelineList() without return types