mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-04 23:09:44 +01:00
* params: add targets option * fixup * remove unnecessary changes * fix isort * params: diff: add test for --targets * tests: roll back metric/plots unification, introduce collect test * metrics/plots: refactoring * missing plots test added
107 lines
3.1 KiB
Python
107 lines
3.1 KiB
Python
import pytest
|
|
|
|
from dvc.repo import Repo
|
|
from dvc.repo.params.show import NoParamsError
|
|
|
|
|
|
def test_show_empty(dvc):
|
|
with pytest.raises(NoParamsError):
|
|
dvc.params.show()
|
|
|
|
|
|
def test_show(tmp_dir, dvc):
|
|
tmp_dir.gen("params.yaml", "foo: bar")
|
|
dvc.run(cmd="echo params.yaml", params=["foo"], single_stage=True)
|
|
assert dvc.params.show() == {"": {"params.yaml": {"foo": "bar"}}}
|
|
|
|
|
|
def test_show_toml(tmp_dir, dvc):
|
|
tmp_dir.gen("params.toml", "[foo]\nbar = 42\nbaz = [1, 2]\n")
|
|
dvc.run(
|
|
cmd="echo params.toml", params=["params.toml:foo"], single_stage=True
|
|
)
|
|
assert dvc.params.show() == {
|
|
"": {"params.toml": {"foo": {"bar": 42, "baz": [1, 2]}}}
|
|
}
|
|
|
|
|
|
def test_show_py(tmp_dir, dvc):
|
|
tmp_dir.gen(
|
|
"params.py",
|
|
"CONST = 1\nIS_DIR: bool = True\n\n\nclass Config:\n foo = 42\n",
|
|
)
|
|
dvc.run(
|
|
cmd="echo params.py",
|
|
params=["params.py:CONST,IS_DIR,Config.foo"],
|
|
single_stage=True,
|
|
)
|
|
assert dvc.params.show() == {
|
|
"": {"params.py": {"CONST": 1, "IS_DIR": True, "Config": {"foo": 42}}}
|
|
}
|
|
|
|
|
|
def test_show_multiple(tmp_dir, dvc):
|
|
tmp_dir.gen("params.yaml", "foo: bar\nbaz: qux\n")
|
|
dvc.run(
|
|
cmd="echo params.yaml",
|
|
fname="foo.dvc",
|
|
params=["foo"],
|
|
single_stage=True,
|
|
)
|
|
dvc.run(
|
|
cmd="echo params.yaml",
|
|
fname="baz.dvc",
|
|
params=["baz"],
|
|
single_stage=True,
|
|
)
|
|
assert dvc.params.show() == {
|
|
"": {"params.yaml": {"foo": "bar", "baz": "qux"}}
|
|
}
|
|
|
|
|
|
def test_show_list(tmp_dir, dvc):
|
|
tmp_dir.gen("params.yaml", "foo:\n- bar\n- baz\n")
|
|
dvc.run(cmd="echo params.yaml", params=["foo"], single_stage=True)
|
|
assert dvc.params.show() == {"": {"params.yaml": {"foo": ["bar", "baz"]}}}
|
|
|
|
|
|
def test_show_branch(tmp_dir, scm, dvc):
|
|
tmp_dir.gen("params.yaml", "foo: bar")
|
|
dvc.run(cmd="echo params.yaml", params=["foo"], single_stage=True)
|
|
scm.add(["params.yaml", "Dvcfile"])
|
|
scm.commit("init")
|
|
|
|
with tmp_dir.branch("branch", new=True):
|
|
tmp_dir.scm_gen("params.yaml", "foo: baz", commit="branch")
|
|
|
|
assert dvc.params.show(revs=["branch"]) == {
|
|
"workspace": {"params.yaml": {"foo": "bar"}},
|
|
"branch": {"params.yaml": {"foo": "baz"}},
|
|
}
|
|
|
|
|
|
def test_pipeline_tracked_params(tmp_dir, scm, dvc, run_copy):
|
|
from dvc.dvcfile import PIPELINE_FILE
|
|
|
|
tmp_dir.gen({"foo": "foo", "params.yaml": "foo: bar\nxyz: val"})
|
|
run_copy("foo", "bar", name="copy-foo-bar", params=["foo,xyz"])
|
|
scm.add(["params.yaml", PIPELINE_FILE])
|
|
scm.commit("add stage")
|
|
|
|
tmp_dir.scm_gen("params.yaml", "foo: baz\nxyz: val", commit="baz")
|
|
tmp_dir.scm_gen("params.yaml", "foo: qux\nxyz: val", commit="qux")
|
|
|
|
assert dvc.params.show(revs=["master"]) == {
|
|
"master": {"params.yaml": {"foo": "qux", "xyz": "val"}}
|
|
}
|
|
|
|
|
|
def test_show_no_repo(tmp_dir):
|
|
tmp_dir.gen({"foo": "foo", "params_file.yaml": "foo: bar\nxyz: val"})
|
|
|
|
dvc = Repo(uninitialized=True)
|
|
|
|
assert dvc.params.show(targets=["params_file.yaml"]) == {
|
|
"": {"params_file.yaml": {"foo": "bar", "xyz": "val"}}
|
|
}
|