code: def test_import_subrepos(tmp_dir, erepo_dir, dvc, scm, is_dvc, files):
      subrepo = erepo_dir / "subrepo"
      make_subrepo(subrepo, erepo_dir.scm)
      gen = subrepo.dvc_gen if is_dvc else subrepo.scm_gen
      with subrepo.chdir():
          gen(files, commit="add files in subrepo")
  
      key = next(iter(files))
      path = str((subrepo / key).relative_to(erepo_dir))
  
      stage = dvc.imp(os.fspath(erepo_dir), path, out="out")
  
      assert (tmp_dir / "out").read_text() == files[key]
      assert stage.deps[0].def_path == path
      assert stage.deps[0].def_repo == {
          "url": os.fspath(erepo_dir),
          "rev_lock": erepo_dir.scm.get_rev(),
      }
  
imports: import filecmp
  import os
  import pytest
  from funcy import first
  from dvc.cachemgr import CacheManager
  from dvc.config import NoRemoteError
  from dvc.dvcfile import load_file
  from dvc.fs import system
  from dvc.scm import Git
  from dvc.stage.exceptions import StagePathNotFoundError
  from dvc.testing.tmp_dir import make_subrepo
  from dvc.utils.fs import remove
  from dvc_data.index.index import DataIndexDirError
label_desc: Use image node_id 27 for calling a global function with example usage: test_import_subrepos(tmp_dir, erepo_dir, dvc, scm, is_dvc, files) without return types