mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
test: do not bootstrap versions in erepo_dir
This commit is contained in:
+11
-9
@@ -139,6 +139,7 @@ class TmpDir(pathlib.Path):
|
||||
if commit:
|
||||
self.scm.commit(commit)
|
||||
|
||||
# contexts
|
||||
@contextmanager
|
||||
def chdir(self):
|
||||
old = os.getcwd()
|
||||
@@ -148,6 +149,16 @@ class TmpDir(pathlib.Path):
|
||||
finally:
|
||||
os.chdir(old)
|
||||
|
||||
@contextmanager
|
||||
def branch(self, name, new=False):
|
||||
self._require("scm")
|
||||
old = self.scm.active_branch()
|
||||
try:
|
||||
self.scm.checkout(name, create_new=new)
|
||||
yield
|
||||
finally:
|
||||
self.scm.checkout(old)
|
||||
|
||||
# Introspection methods
|
||||
def list(self):
|
||||
return [p.name for p in self.iterdir()]
|
||||
@@ -271,15 +282,6 @@ def erepo_dir(tmp_path_factory, monkeypatch):
|
||||
rconfig.add("upstream", path.dvc.cache.local.cache_dir, default=True)
|
||||
path.scm_add([path.dvc.config.config_file], commit="add remote")
|
||||
|
||||
path.dvc_gen("version", "master")
|
||||
path.scm_add([".gitignore", "version.dvc"], commit="master")
|
||||
|
||||
path.scm.checkout("branch", create_new=True)
|
||||
(path / "version").unlink() # For mac ???
|
||||
path.dvc_gen("version", "branch")
|
||||
path.scm_add([".gitignore", "version.dvc"], commit="branch")
|
||||
|
||||
path.scm.checkout("master")
|
||||
path.dvc.close()
|
||||
|
||||
return path
|
||||
|
||||
@@ -63,11 +63,15 @@ def test_open(remote_url, tmp_dir, dvc):
|
||||
|
||||
@pytest.mark.parametrize("remote_url", all_remote_params, indirect=True)
|
||||
def test_open_external(remote_url, erepo_dir):
|
||||
erepo_dir.scm.checkout("branch")
|
||||
_set_remote_url_and_commit(erepo_dir.dvc, remote_url)
|
||||
erepo_dir.scm.checkout("master")
|
||||
_set_remote_url_and_commit(erepo_dir.dvc, remote_url)
|
||||
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.dvc_gen("version", "master", commit="add version")
|
||||
|
||||
with erepo_dir.branch("branch", new="True"):
|
||||
# NOTE: need file to be other size for Mac
|
||||
erepo_dir.dvc_gen("version", "branchver", commit="add version")
|
||||
|
||||
erepo_dir.dvc.push(all_branches=True)
|
||||
|
||||
# Remove cache to force download
|
||||
@@ -78,7 +82,7 @@ def test_open_external(remote_url, erepo_dir):
|
||||
with api.open("version", repo=repo_url) as fd:
|
||||
assert fd.read() == "master"
|
||||
|
||||
assert api.read("version", repo=repo_url, rev="branch") == "branch"
|
||||
assert api.read("version", repo=repo_url, rev="branch") == "branchver"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("remote_url", all_remote_params, indirect=True)
|
||||
|
||||
+7
-11
@@ -77,13 +77,10 @@ def test_cache_type_is_properly_overridden(tmp_dir, erepo_dir):
|
||||
|
||||
|
||||
def test_get_repo_rev(tmp_dir, erepo_dir):
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.scm.checkout("new_branch", create_new=True)
|
||||
with erepo_dir.chdir(), erepo_dir.branch("branch", new=True):
|
||||
erepo_dir.dvc_gen("file", "contents", commit="create file on branch")
|
||||
erepo_dir.scm.checkout("master")
|
||||
|
||||
Repo.get(fspath(erepo_dir), "file", "file_imported", rev="new_branch")
|
||||
|
||||
Repo.get(fspath(erepo_dir), "file", "file_imported", rev="branch")
|
||||
assert (tmp_dir / "file_imported").read_text() == "contents"
|
||||
|
||||
|
||||
@@ -159,11 +156,10 @@ def test_get_to_dir(tmp_dir, erepo_dir, dname):
|
||||
|
||||
def test_get_from_non_dvc_master(tmp_dir, erepo_dir, caplog):
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.scm.checkout("new_branch", create_new=True)
|
||||
erepo_dir.scm_gen(
|
||||
{"some_file": "some_contents"}, commit="create some file"
|
||||
)
|
||||
erepo_dir.scm.checkout("master")
|
||||
with erepo_dir.branch("branch", new=True):
|
||||
erepo_dir.scm_gen(
|
||||
{"some_file": "some_contents"}, commit="create some file"
|
||||
)
|
||||
|
||||
erepo_dir.dvc.scm.repo.index.remove([".dvc"], r=True)
|
||||
erepo_dir.dvc.scm.commit("remove .dvc")
|
||||
@@ -175,7 +171,7 @@ def test_get_from_non_dvc_master(tmp_dir, erepo_dir, caplog):
|
||||
caplog.clear()
|
||||
dst = "file_imported"
|
||||
with caplog.at_level(logging.INFO, logger="dvc"):
|
||||
Repo.get(fspath(erepo_dir), "some_file", out=dst, rev="new_branch")
|
||||
Repo.get(fspath(erepo_dir), "some_file", out=dst, rev="branch")
|
||||
|
||||
assert caplog.text == ""
|
||||
assert (tmp_dir / dst).read_text() == "some_contents"
|
||||
|
||||
@@ -107,10 +107,9 @@ def test_ignore_collecting_dvcignores(tmp_dir, dvc, dname):
|
||||
def test_ignore_on_branch(tmp_dir, scm, dvc):
|
||||
tmp_dir.scm_gen({"foo": "foo", "bar": "bar"}, commit="add files")
|
||||
|
||||
scm.checkout("branch", create_new=True)
|
||||
tmp_dir.scm_gen(DvcIgnore.DVCIGNORE_FILE, "foo", commit="add ignore")
|
||||
with tmp_dir.branch("branch", new=True):
|
||||
tmp_dir.scm_gen(DvcIgnore.DVCIGNORE_FILE, "foo", commit="add ignore")
|
||||
|
||||
scm.checkout("master")
|
||||
assert _files_set(".", dvc.tree) == {"./foo", "./bar"}
|
||||
|
||||
dvc.tree = scm.get_tree("branch")
|
||||
|
||||
@@ -90,12 +90,10 @@ def test_import_non_cached(erepo_dir, tmp_dir, dvc, scm):
|
||||
|
||||
|
||||
def test_import_rev(tmp_dir, scm, dvc, erepo_dir):
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.scm.checkout("new_branch", create_new=True)
|
||||
with erepo_dir.chdir(), erepo_dir.branch("branch", new=True):
|
||||
erepo_dir.dvc_gen("foo", "foo content", commit="create foo on branch")
|
||||
erepo_dir.scm.checkout("master")
|
||||
|
||||
dvc.imp(fspath(erepo_dir), "foo", "foo_imported", rev="new_branch")
|
||||
dvc.imp(fspath(erepo_dir), "foo", "foo_imported", rev="branch")
|
||||
|
||||
assert (tmp_dir / "foo_imported").read_text() == "foo content"
|
||||
assert scm.repo.git.check_ignore("foo_imported")
|
||||
@@ -188,12 +186,13 @@ def test_import_to_dir(dname, tmp_dir, dvc, erepo_dir):
|
||||
def test_pull_non_workspace(tmp_dir, scm, dvc, erepo_dir):
|
||||
with erepo_dir.chdir():
|
||||
erepo_dir.dvc_gen("foo", "master content", commit="create foo")
|
||||
erepo_dir.scm.checkout("new_branch", create_new=True)
|
||||
erepo_dir.dvc_gen("foo", "branch content", commit="modify foo")
|
||||
|
||||
stage = dvc.imp(fspath(erepo_dir), "foo", "foo_imported", rev="new_branch")
|
||||
with erepo_dir.branch("branch", new=True):
|
||||
erepo_dir.dvc_gen("foo", "branch content", commit="modify foo")
|
||||
|
||||
stage = dvc.imp(fspath(erepo_dir), "foo", "foo_imported", rev="branch")
|
||||
tmp_dir.scm_add([stage.relpath], commit="imported branch")
|
||||
dvc.scm.tag("ref-to-branch")
|
||||
scm.tag("ref-to-branch")
|
||||
|
||||
# Overwrite via import
|
||||
dvc.imp(fspath(erepo_dir), "foo", "foo_imported", rev="master")
|
||||
|
||||
Reference in New Issue
Block a user