code: def testPipelineDelete(self):
      # Try deleting a non existent pipeline.
      with self.assertRaises(subprocess.CalledProcessError) as cm:
          test_utils.run_cli(
              [
                  "pipeline",
                  "delete",
                  "--engine",
                  "kubeflow",
                  "--pipeline_name",
                  self._pipeline_name,
                  "--endpoint",
                  self._endpoint,
              ]
          )
      self.assertIn(
          'Cannot find pipeline "{}".'.format(self._pipeline_name),
          cm.exception.output,
      )
  
      # Create a pipeline.
      self._valid_create_and_check(
          self._pipeline_path, self._pipeline_name
      )
  
      # Now delete the pipeline.
      result = test_utils.run_cli(
          [
              "pipeline",
              "delete",
              "--engine",
              "kubeflow",
              "--pipeline_name",
              self._pipeline_name,
              "--endpoint",
              self._endpoint,
          ]
      )
      self.assertIn("Deleting pipeline", result)
      self.assertIn(
          "Pipeline {} deleted successfully.".format(
              self._pipeline_name
          ),
          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 16 for calling the CliKubeflowEndToEndTest obj's underlying member method code with example usage: obj.testPipelineDelete() without return types