code: def testPipelineCreateAutoDetect(self):
      result = self.runner.invoke(
          cli_group,
          [
              "pipeline",
              "create",
              "--engine",
              "auto",
              "--pipeline_path",
              self._pipeline_path,
          ],
      )
      self.assertIn("Creating pipeline", result.output)
      if (
          labels.AIRFLOW_PACKAGE_NAME in self._pip_list
          and labels.KUBEFLOW_PACKAGE_NAME in self._pip_list
      ):
          self.assertIn(
              "Multiple orchestrators found. Choose one using --engine flag.",
              result.output,
          )
      else:
          self.assertIn("Detected Airflow", result.output)
          self.assertTrue(
              self._does_pipeline_args_file_exist(self._pipeline_name)
          )
          self.assertIn(
              'Pipeline "{}" created successfully.'.format(
                  self._pipeline_name
              ),
              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 8 for calling the CliAirflowEndToEndTest obj's underlying member method code with example usage: obj.testPipelineCreateAutoDetect() without return types