code: def testPipelineList(self):
      # Prepare another pipeline file.
      pipeline_name_v2 = "chicago_taxi_simple_v2"
      pipeline_path_v2 = os.path.join(
          self.get_temp_dir(), "test_pipeline_airflow_v2.py"
      )
      test_utils.copy_and_change_pipeline_name(
          self._pipeline_path,
          pipeline_path_v2,
          self._pipeline_name,
          pipeline_name_v2,
      )
  
      # Try listing pipelines when there are none.
      result = self.runner.invoke(
          cli_group, ["pipeline", "list", "--engine", "airflow"]
      )
      self.assertIn("Listing all pipelines", result.output)
  
      # Create pipelines.
      self._valid_create_and_check(
          self._pipeline_path, self._pipeline_name
      )
      self._valid_create_and_check(pipeline_path_v2, pipeline_name_v2)
  
      # List pipelines.
      result = self.runner.invoke(
          cli_group, ["pipeline", "list", "--engine", "airflow"]
      )
      self.assertIn("Listing all pipelines", result.output)
      self.assertIn(self._pipeline_name, result.output)
      self.assertIn(pipeline_name_v2, result.output)
  
imports: import codecs
  import locale
  import os
  import subprocess
  import sys
  import time
  import absl
  from click import testing
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.orchestration.airflow import test_utils
  from tfx.tools.cli import labels
  from tfx.tools.cli import pip_utils
  from tfx.tools.cli.cli_main import cli_group
  from tfx.tools.cli.e2e import test_utils
  from tfx.utils import io_utils
  from tfx.utils import retry
  from tfx.utils import test_case_utils
label_desc: Use image node_id 13 for calling the CliAirflowEndToEndTest obj's underlying member method code with example usage: obj.testPipelineList() without return types