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

Method test_update

dvc/testing/remote_tests.py:371–420  ·  view source on GitHub ↗
(self, tmp_dir, dvc, remote_worktree)

Source from the content-addressed store, hash-verified

369 assert (tmp_dir / "data_dir" / "data").read_text() == "data"
370
371 def test_update(self, tmp_dir, dvc, remote_worktree):
372 (foo_stage,) = tmp_dir.dvc_gen("foo", "foo")
373 (data_dir_stage,) = tmp_dir.dvc_gen(
374 {
375 "data_dir": {
376 "data_sub_dir": {"data_sub": "data_sub"},
377 "data": "data",
378 "empty": "",
379 }
380 }
381 )
382 dvc.push()
383 orig_foo = foo_stage.reload().outs[0]
384 orig_data_dir = data_dir_stage.reload().outs[0]
385 (remote_worktree / "foo").write_text("bar")
386 (remote_worktree / "data_dir" / "data").write_text("modified")
387 (remote_worktree / "data_dir" / "new_data").write_text("new data")
388
389 dvc.update([str(tmp_dir / "foo.dvc"), str(tmp_dir / "data_dir.dvc")])
390 updated_foo = foo_stage.reload().outs[0]
391 updated_data_dir = data_dir_stage.reload().outs[0]
392
393 assert updated_foo.meta.version_id
394 assert updated_foo.meta.version_id != orig_foo.meta.version_id
395 updated_data_dir = data_dir_stage.reload().outs[0]
396 orig_tree = orig_data_dir.get_obj()
397 updated_tree = Tree.from_list(updated_data_dir.files, hash_name="md5")
398 assert orig_tree.get(("data_sub_dir", "data_sub")) == updated_tree.get(
399 ("data_sub_dir", "data_sub")
400 )
401 orig_meta, _ = orig_tree.get(("data",))
402 updated_meta, _ = updated_tree.get(("data",))
403 assert orig_meta.version_id
404 assert updated_meta.version_id
405 assert orig_meta.version_id != updated_meta.version_id
406 meta, hash_info = updated_tree.get(("new_data",))
407 assert meta
408 assert hash_info
409
410 assert (tmp_dir / "foo").read_text() == "bar"
411 assert (tmp_dir / "data_dir" / "data").read_text() == "modified"
412 assert (tmp_dir / "data_dir" / "new_data").read_text() == "new data"
413
414 remove(dvc.cache.local.path)
415 remove(tmp_dir / "foo")
416 remove(tmp_dir / "data_dir")
417 dvc.pull()
418 assert (tmp_dir / "foo").read_text() == "bar"
419 assert (tmp_dir / "data_dir" / "data").read_text() == "modified"
420 assert (tmp_dir / "data_dir" / "new_data").read_text() == "new data"

Callers

nothing calls this directly

Calls 10

removeFunction · 0.90
dvc_genMethod · 0.80
write_textMethod · 0.80
get_objMethod · 0.80
pushMethod · 0.45
reloadMethod · 0.45
updateMethod · 0.45
getMethod · 0.45
read_textMethod · 0.45
pullMethod · 0.45

Tested by

no test coverage detected