code: def test_checkout(tmp_dir, dvc, copy_script):
      tmp_dir.dvc_gen({"foo": "foo", "data": {"file": "file"}})
      dvc.run(
          outs=["file1"],
          deps=["foo", "copy.py"],
          cmd="python copy.py foo file1",
          name="copy-foo-file1",
      )
      remove(tmp_dir / "foo")
      remove("data")
  
      dvc.checkout(force=True)
      assert (tmp_dir / "foo").read_text() == "foo"
      assert (tmp_dir / "data").read_text() == {"file": "file"}
  
imports: import logging
  import os
  import shutil
  import stat
  import textwrap
  import pytest
  from dvc.cli import main
  from dvc.dvcfile import PROJECT_FILE, load_file
  from dvc.exceptions import CheckoutError, CheckoutErrorSuggestGit, NoOutputOrStageError
  from dvc.fs import system
  from dvc.stage.exceptions import StageFileDoesNotExistError
  from dvc.utils import relpath
  from dvc.utils.fs import remove
  from tests.utils import get_gitignore_content
label_desc: Use image node_id 2 for calling a global function with example usage: test_checkout(tmp_dir, dvc, copy_script) without return types