| 88 | |
| 89 | class TestImportURLVersionAware: |
| 90 | def test_import_file(self, tmp_dir, dvc, remote_version_aware): |
| 91 | remote_version_aware.gen("file", "file") |
| 92 | dvc.imp_url("remote://upstream/file", version_aware=True) |
| 93 | stage = first(dvc.index.stages) |
| 94 | assert not stage.outs[0].can_push |
| 95 | assert (tmp_dir / "file").read_text() == "file" |
| 96 | assert dvc.status() == {} |
| 97 | |
| 98 | orig_version_id = stage.deps[0].meta.version_id |
| 99 | orig_def_path = stage.deps[0].def_path |
| 100 | |
| 101 | dvc.cache.local.clear() |
| 102 | remove(tmp_dir / "file") |
| 103 | dvc.pull() |
| 104 | assert (tmp_dir / "file").read_text() == "file" |
| 105 | |
| 106 | (remote_version_aware / "file").write_text("modified") |
| 107 | assert dvc.status().get("file.dvc") == [ |
| 108 | {"changed deps": {"remote://upstream/file": "update available"}}, |
| 109 | {"changed outs": {"file": "not in cache"}}, |
| 110 | ] |
| 111 | dvc.update(str(tmp_dir / "file.dvc")) |
| 112 | assert (tmp_dir / "file").read_text() == "modified" |
| 113 | assert dvc.status() == {} |
| 114 | |
| 115 | stage = first(dvc.index.stages) |
| 116 | assert orig_version_id != stage.deps[0].meta.version_id |
| 117 | assert orig_def_path == stage.deps[0].def_path |
| 118 | |
| 119 | dvc.cache.local.clear() |
| 120 | remove(tmp_dir / "file") |
| 121 | dvc.pull() |
| 122 | assert (tmp_dir / "file").read_text() == "modified" |
| 123 | |
| 124 | def test_import_dir(self, tmp_dir, dvc, remote_version_aware): |
| 125 | remote_version_aware.gen({"data_dir": {"subdir": {"file": "file"}}}) |