From b7b2540ac3a214d7805e48fa66fe52d344a989e0 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Thu, 9 Apr 2020 15:12:08 +0300 Subject: [PATCH] params: fix bug when collecting multiple params --- dvc/repo/params/show.py | 6 +++--- tests/func/params/test_show.py | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/dvc/repo/params/show.py b/dvc/repo/params/show.py index 69d83ca06e..1391154331 100644 --- a/dvc/repo/params/show.py +++ b/dvc/repo/params/show.py @@ -20,9 +20,9 @@ def _collect_params(repo): configs[dep.path_info] = copy.copy(dep) continue - existing = set(configs[dep.path_info].params) - new = set(dep.params) - configs[dep.path_info].params = list(existing.update(new)) + params = set(configs[dep.path_info].params) + params.update(set(dep.params)) + configs[dep.path_info].params = list(params) return configs.values() diff --git a/tests/func/params/test_show.py b/tests/func/params/test_show.py index 51a2749720..b52d9e9a12 100644 --- a/tests/func/params/test_show.py +++ b/tests/func/params/test_show.py @@ -14,6 +14,15 @@ def test_show(tmp_dir, dvc): assert dvc.params.show() == {"": {"params.yaml": {"foo": "bar"}}} +def test_show_multiple(tmp_dir, dvc): + tmp_dir.gen("params.yaml", "foo: bar\nbaz: qux\n") + dvc.run(fname="foo.dvc", params=["foo"]) + dvc.run(fname="baz.dvc", params=["baz"]) + 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(params=["foo"])