test: do not bootstrap versions in erepo_dir

This commit is contained in:
Alexander Schepanovski
2020-01-04 10:47:13 +07:00
parent 85c35f894c
commit b194bfa1ff
5 changed files with 35 additions and 35 deletions
+11 -9
View File
@@ -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
+8 -4
View File
@@ -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
View File
@@ -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"
+2 -3
View File
@@ -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")
+7 -8
View File
@@ -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")