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

Function test_update_recursive

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

Source from the content-addressed store, hash-verified

280
281
282def test_update_recursive(tmp_dir, dvc, erepo_dir):
283 with erepo_dir.branch("branch", new=True), erepo_dir.chdir():
284 erepo_dir.scm_gen(
285 {"foo1": "text1", "foo2": "text2", "foo3": "text3"},
286 commit="add foo files",
287 )
288 old_rev = erepo_dir.scm.get_rev()
289
290 tmp_dir.gen({"dir": {"subdir": {}}})
291 stage1 = dvc.imp(
292 os.fspath(erepo_dir), "foo1", os.path.join("dir", "foo1"), rev="branch"
293 )
294 stage2 = dvc.imp(
295 os.fspath(erepo_dir),
296 "foo2",
297 os.path.join("dir", "subdir", "foo2"),
298 rev="branch",
299 )
300 stage3 = dvc.imp(
301 os.fspath(erepo_dir),
302 "foo3",
303 os.path.join("dir", "subdir", "foo3"),
304 rev="branch",
305 )
306
307 assert (tmp_dir / os.path.join("dir", "foo1")).read_text() == "text1"
308 assert (tmp_dir / os.path.join("dir", "subdir", "foo2")).read_text() == "text2"
309 assert (tmp_dir / os.path.join("dir", "subdir", "foo3")).read_text() == "text3"
310
311 assert stage1.deps[0].def_repo["rev_lock"] == old_rev
312 assert stage2.deps[0].def_repo["rev_lock"] == old_rev
313 assert stage3.deps[0].def_repo["rev_lock"] == old_rev
314
315 with erepo_dir.branch("branch", new=False), erepo_dir.chdir():
316 erepo_dir.scm_gen(
317 {"foo1": "updated1", "foo2": "updated2", "foo3": "updated3"},
318 "",
319 "update foo content",
320 )
321 new_rev = erepo_dir.scm.get_rev()
322
323 assert old_rev != new_rev
324
325 dvc.update(["dir"], recursive=True)
326
327 stage1 = load_file(dvc, stage1.path).stage
328 stage2 = load_file(dvc, stage2.path).stage
329 stage3 = load_file(dvc, stage3.path).stage
330 assert stage1.deps[0].def_repo["rev_lock"] == new_rev
331 assert stage2.deps[0].def_repo["rev_lock"] == new_rev
332 assert stage3.deps[0].def_repo["rev_lock"] == new_rev
333
334
335@pytest.mark.parametrize("is_dvc", [True, False])

Callers

nothing calls this directly

Calls 10

load_fileFunction · 0.90
scm_genMethod · 0.80
joinMethod · 0.80
branchMethod · 0.45
chdirMethod · 0.45
get_revMethod · 0.45
genMethod · 0.45
fspathMethod · 0.45
read_textMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected