code: def testCopy(self):
      test_dir = self.create_tempdir().full_path
      pipeline_name = "my_pipeline"
      flags = {
          labels.MODEL: "taxi",
          labels.DESTINATION_PATH: test_dir,
          labels.PIPELINE_NAME: pipeline_name,
      }
      template_handler.copy_template(flags)
      copied_files = os.listdir(test_dir)
      self.assertNotEqual(copied_files, [])
      self.assertContainsSubset(
          ["__init__.py", "local_runner.py"], copied_files
      )
      self.assertFalse(
          os.path.exists(os.path.join(test_dir, "e2e_tests"))
      )
      self.assertTrue(
          os.path.exists(os.path.join(test_dir, "data", "data.csv"))
      )
  
      with open(os.path.join(test_dir, "pipeline", "configs.py")) as fp:
          configs_py_content = fp.read()
      self.assertIn(pipeline_name, configs_py_content)
  
file_path: tfx/tfx/tools/cli/handler/template_handler_test.py
imports: import os
  import tensorflow
  from tfx.tools.cli import labels
  from tfx.tools.cli.handler import template_handler
label_desc: Use image node_id 2 for calling the TemplateHandlerTest obj's underlying member method code with example usage: obj.testCopy() without return types