code: def testPenguinPipelineSklearnLocal(self):
      tfx.orchestration.LocalDagRunner().run(
          penguin_pipeline_sklearn_local._create_pipeline(
              pipeline_name=self._pipeline_name,
              pipeline_root=self._pipeline_root,
              data_root=self._data_root,
              trainer_module_file=self._trainer_module_file,
              evaluator_module_file=self._evaluator_module_file,
              serving_model_dir=self._serving_model_dir,
              metadata_path=self._metadata_path,
              beam_pipeline_args=[],
          )
      )
  
      self.assertTrue(tfx.dsl.io.fileio.exists(self._serving_model_dir))
      self.assertTrue(tfx.dsl.io.fileio.exists(self._metadata_path))
      expected_execution_count = 8  # 7 components + 1 resolver
      metadata_config = (
          tfx.orchestration.metadata.sqlite_metadata_connection_config(
              self._metadata_path
          )
      )
      with metadata.Metadata(metadata_config) as m:
          artifact_count = len(m.store.get_artifacts())
          execution_count = len(m.store.get_executions())
          self.assertGreaterEqual(artifact_count, execution_count)
          self.assertEqual(expected_execution_count, execution_count)
  
      self.assertPipelineExecution()
  
file_path: tfx/tfx/examples/penguin/experimental/penguin_pipeline_sklearn_local_e2e_test.py
imports: import os
  import tensorflow
  from tfx import v1
  from tfx.examples.penguin.experimental import penguin_pipeline_sklearn_local
  from tfx.orchestration import metadata
label_desc: Use image node_id 4 for calling the PenguinPipelineSklearnLocalEndToEndTest obj's underlying member method code with example usage: obj.testPenguinPipelineSklearnLocal() without return types