code: def test_import_no_download(
      self, tmp_dir, dvc, remote_version_aware, scm
  ):
      remote_version_aware.gen(
          {"data_dir": {"subdir": {"file": "file"}}}
      )
      dvc.imp_url(
          "remote://upstream/data_dir",
          version_aware=True,
          no_download=True,
      )
      scm.add(["data_dir.dvc", ".gitignore"])
      scm.commit("v1")
      scm.tag("v1")
  
      stage = first(dvc.index.stages)
      assert not stage.outs[0].can_push
  
      (remote_version_aware / "data_dir" / "foo").write_text("foo")
      dvc.update(no_download=True)
      assert dvc.pull()["fetched"] == 2
      assert (tmp_dir / "data_dir").read_text() == {
          "foo": "foo",
          "subdir": {"file": "file"},
      }
      scm.add(["data_dir.dvc", ".gitignore"])
      scm.commit("update")
  
      scm.checkout("v1")
      dvc.cache.local.clear()
      remove(tmp_dir / "data_dir")
      assert dvc.pull()["fetched"] == 1
      assert (tmp_dir / "data_dir").read_text() == {
          "subdir": {"file": "file"},
      }
  
      dvc.commit(force=True)
      assert dvc.status() == {}
  
imports: import os
  from typing import Dict, Union
  import pytest
  from funcy import first
  from dvc.exceptions import URLMissingError
  from dvc.repo import Repo
  from dvc.repo.ls_url import ls_url, parse_external_url
  from dvc.utils.fs import remove
label_desc: Use image node_id 3 for calling the TestImportURLVersionAware obj's underlying member method code with example usage: obj.test_import_no_download(tmp_dir, dvc, remote_version_aware, scm) without return types