MCPcopy
hub / github.com/treeverse/dvc / test_update_import

Function test_update_import

tests/func/test_update.py:13–71  ·  view source on GitHub ↗
(tmp_dir, dvc, erepo_dir, cached)

Source from the content-addressed store, hash-verified

11
12@pytest.mark.parametrize("cached", [True, False])
13def test_update_import(tmp_dir, dvc, erepo_dir, cached):
14 gen = erepo_dir.dvc_gen if cached else erepo_dir.scm_gen
15
16 with erepo_dir.branch("branch", new=True), erepo_dir.chdir():
17 gen(
18 {
19 "version": "branch",
20 "dir": {"version": "branch", "subdir": {"file": "file"}},
21 },
22 commit="add version file",
23 )
24 old_rev = erepo_dir.scm.get_rev()
25
26 stage = dvc.imp(os.fspath(erepo_dir), "version", "version", rev="branch")
27 dir_stage = dvc.imp(os.fspath(erepo_dir), "dir", "dir", rev="branch")
28 assert dvc.status() == {}
29
30 assert (tmp_dir / "version").read_text() == "branch"
31 assert (tmp_dir / "dir").read_text() == {
32 "version": "branch",
33 "subdir": {"file": "file"},
34 }
35 assert stage.deps[0].def_repo["rev_lock"] == old_rev
36 assert dir_stage.deps[0].def_repo["rev_lock"] == old_rev
37
38 # Update version file
39 with erepo_dir.branch("branch", new=False), erepo_dir.chdir():
40 gen(
41 {
42 "version": "updated",
43 "dir": {"version": "updated", "subdir": {"file": "file"}},
44 },
45 commit="update version content",
46 )
47 new_rev = erepo_dir.scm.get_rev()
48
49 assert old_rev != new_rev
50
51 assert dvc.status() == {
52 "dir.dvc": [
53 {"changed deps": {f"dir ({os.fspath(erepo_dir)})": "update available"}}
54 ],
55 "version.dvc": [
56 {"changed deps": {f"version ({os.fspath(erepo_dir)})": "update available"}}
57 ],
58 }
59
60 (stage,) = dvc.update(stage.path)
61 (dir_stage,) = dvc.update(dir_stage.path)
62 assert dvc.status() == {}
63
64 assert (tmp_dir / "version").read_text() == "updated"
65 assert (tmp_dir / "dir").read_text() == {
66 "version": "updated",
67 "subdir": {"file": "file"},
68 }
69
70 assert stage.deps[0].def_repo["rev_lock"] == new_rev

Callers

nothing calls this directly

Calls 7

branchMethod · 0.45
chdirMethod · 0.45
get_revMethod · 0.45
fspathMethod · 0.45
statusMethod · 0.45
read_textMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected