code: def testRunDelete(self):
      # Now create a pipeline.
      self._valid_create_and_check(
          self._pipeline_path, self._pipeline_name
      )
  
      # Run pipeline using kfp client to get run_id.
      run = self._run_pipeline_using_kfp_client(self._pipeline_name)
  
      absl.logging.info("Deleting run: %s", run.id)
      result = test_utils.run_cli(
          [
              "run",
              "delete",
              "--engine",
              "kubeflow",
              "--endpoint",
              self._endpoint,
              "--run_id",
              run.id,
          ]
      )
      self.assertIn("Deleting run.", result)
      self.assertIn("Run deleted.", 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 21 for calling the CliKubeflowEndToEndTest obj's underlying member method code with example usage: obj.testRunDelete() without return types