mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
The code are wrapped due to us using line-length=79 before, but now some of the code can easily fit in 88 chars. The formatter did not change this automatically when we changed line-length, because of magic trailing commas that gets added when they turn into multiple lines. Black/ruff wrapping them in parens and splitting them into multiple lines was making it difficult to read.
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
import pytest
|
|
from funcy import first
|
|
|
|
from dvc.dependency.base import DependencyDoesNotExistError
|
|
from dvc.exceptions import ReproductionError
|
|
|
|
|
|
@pytest.mark.parametrize("tmp", [True, False])
|
|
@pytest.mark.parametrize("staged", [True, False])
|
|
def test_deleted(tmp_dir, scm, dvc, tmp, staged):
|
|
tmp_dir.scm_gen("file", "file", commit="commit file")
|
|
stage = dvc.stage.add(cmd="cat file", deps=["file"], name="foo")
|
|
scm.add_commit(["dvc.yaml"], message="add dvc.yaml")
|
|
|
|
file = tmp_dir / "file"
|
|
file.unlink()
|
|
if staged:
|
|
scm.add(["file"])
|
|
|
|
with pytest.raises(ReproductionError) as exc_info:
|
|
dvc.experiments.run(stage.addressing, tmp_dir=tmp)
|
|
|
|
cause = exc_info._excinfo[1].__cause__
|
|
assert isinstance(cause, DependencyDoesNotExistError)
|
|
assert not file.exists()
|
|
|
|
|
|
@pytest.mark.parametrize("tmp", [True, False])
|
|
@pytest.mark.parametrize("staged", [True, False])
|
|
def test_modified(tmp_dir, scm, dvc, caplog, tmp, staged):
|
|
tmp_dir.scm_gen("file", "file", commit="commit file")
|
|
stage = dvc.stage.add(cmd="cat file", name="foo")
|
|
scm.add_commit(["dvc.yaml"], message="add dvc.yaml")
|
|
|
|
(tmp_dir / "file").write_text("modified_file")
|
|
if staged:
|
|
scm.add(["file"])
|
|
|
|
results = dvc.experiments.run(stage.addressing, tmp_dir=tmp)
|
|
|
|
exp = first(results)
|
|
scm.checkout(exp, force=True)
|
|
assert (tmp_dir / "file").read_text() == "modified_file"
|
|
|
|
|
|
@pytest.mark.parametrize("tmp", [True, False])
|
|
def test_staged_new_file(tmp_dir, scm, dvc, tmp):
|
|
stage = dvc.stage.add(cmd="cat file", name="foo")
|
|
scm.add_commit(["dvc.yaml"], message="add dvc.yaml")
|
|
|
|
(tmp_dir / "file").write_text("file")
|
|
scm.add(["file"])
|
|
|
|
results = dvc.experiments.run(stage.addressing, tmp_dir=tmp)
|
|
exp = first(results)
|
|
fs = scm.get_fs(exp)
|
|
assert fs.exists("file")
|