code: def testPipelineCompile(self):
      # Invalid DSL path
      pipeline_path = os.path.join(
          self._testdata_dir, "test_pipeline_flink.py"
      )
      with self.assertRaises(subprocess.CalledProcessError) as cm:
          test_utils.run_cli(
              [
                  "pipeline",
                  "compile",
                  "--engine",
                  "kubeflow",
                  "--pipeline_path",
                  pipeline_path,
              ]
          )
      self.assertIn(
          "Invalid pipeline path: {}".format(pipeline_path),
          cm.exception.output,
      )
  
      # Wrong Runner.
      pipeline_path = os.path.join(
          self._testdata_dir, "test_pipeline_airflow_1.py"
      )
      with self.assertRaises(subprocess.CalledProcessError) as cm:
          test_utils.run_cli(
              [
                  "pipeline",
                  "compile",
                  "--engine",
                  "kubeflow",
                  "--pipeline_path",
                  pipeline_path,
              ]
          )
  
      # Successful compilation.
      result = test_utils.run_cli(
          [
              "pipeline",
              "compile",
              "--engine",
              "kubeflow",
              "--pipeline_path",
              self._pipeline_path,
          ]
      )
      absl.logging.info("pipeline compile result:%s", result)
      self.assertIn("Compiling pipeline", result)
      self.assertIn("Pipeline compiled successfully", result)
  
imports: import codecs
  import locale
  import os
  import subprocess
  import sys
  from typing import Optional
  import absl
  from google.cloud import storage
  import kfp
  import kfp_server_api
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.tools.cli import labels
  from tfx.tools.cli import pip_utils
  from tfx.tools.cli.e2e import test_utils
  from tfx.utils import retry
  from tfx.utils import test_case_utils
label_desc: Use image node_id 15 for calling the CliKubeflowEndToEndTest obj's underlying member method code with example usage: obj.testPipelineCompile() without return types