From 011bd35a6c0eb555d22a6d6c67967ed5abe8416a Mon Sep 17 00:00:00 2001 From: Saugat Pachhai Date: Fri, 20 Nov 2020 19:49:46 +0545 Subject: [PATCH] parametrization: change foreach stage name joiner from "-" to "@" (#4929) --- dvc/parsing/__init__.py | 2 +- tests/func/test_stage_resolver.py | 14 +++++++------- tests/func/test_stage_resolver_error_msg.py | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dvc/parsing/__init__.py b/dvc/parsing/__init__.py index e4b39a625..66f0c009d 100644 --- a/dvc/parsing/__init__.py +++ b/dvc/parsing/__init__.py @@ -41,7 +41,7 @@ SET_KWD = "set" DEFAULT_SENTINEL = object() -JOIN = "-" +JOIN = "@" class ResolveError(DvcException): diff --git a/tests/func/test_stage_resolver.py b/tests/func/test_stage_resolver.py index 7fdab41c7..c1c7b7c3a 100644 --- a/tests/func/test_stage_resolver.py +++ b/tests/func/test_stage_resolver.py @@ -264,7 +264,7 @@ def test_simple_foreach_loop(tmp_dir, dvc): resolver.resolve(), { "stages": { - f"build-{item}": {"cmd": f"python script.py {item}"} + f"build@{item}": {"cmd": f"python script.py {item}"} for item in iterable } }, @@ -287,7 +287,7 @@ def test_foreach_loop_dict(tmp_dir, dvc): resolver.resolve(), { "stages": { - f"build-{key}": {"cmd": f"python script.py {item['thresh']}"} + f"build@{key}": {"cmd": f"python script.py {item['thresh']}"} for key, item in iterable["models"].items() } }, @@ -313,8 +313,8 @@ def test_foreach_loop_templatized(tmp_dir, dvc): resolver.resolve(), { "stages": { - "build-gb": {"cmd": "python script.py --thresh 15"}, - "build-us": { + "build@gb": {"cmd": "python script.py --thresh 15"}, + "build@us": { "cmd": "python script.py --thresh 10", "params": ["models.us.thresh"], }, @@ -390,7 +390,7 @@ def test_set_with_foreach(tmp_dir, dvc): resolver.resolve(), { "stages": { - f"build-{item}": {"cmd": f"command --value {item}"} + f"build@{item}": {"cmd": f"command --value {item}"} for item in items } }, @@ -419,11 +419,11 @@ def test_set_with_foreach_and_on_stage_definition(tmp_dir, dvc): resolver.resolve(), { "stages": { - "build-us": { + "build@us": { "cmd": "command --value 10", "params": [{"params.json": ["models.us.thresh"]}], }, - "build-gb": { + "build@gb": { "cmd": "command --value 15", "params": [{"params.json": ["models.gb.thresh"]}], }, diff --git a/tests/func/test_stage_resolver_error_msg.py b/tests/func/test_stage_resolver_error_msg.py index 2bcc86763..9f9e097de 100644 --- a/tests/func/test_stage_resolver_error_msg.py +++ b/tests/func/test_stage_resolver_error_msg.py @@ -202,7 +202,7 @@ def test_foreach_generated_errors(tmp_dir, repo, syn, msg): with pytest.raises(ResolveError) as exc_info: resolver.resolve() assert str(exc_info.value) == ( - "failed to parse 'stages.build-bar.cmd' in 'dvc.yaml':" + msg + "failed to parse 'stages.build@bar.cmd' in 'dvc.yaml':" + msg ) @@ -212,7 +212,7 @@ def test_foreach_generated_errors(tmp_dir, repo, syn, msg): (["params-does-not-exist"], " 'params-does-not-exist' does not exist"), ( [DATA], - "\ncannot redefine 'models.bar' from 'build-bar.vars[0]' " + "\ncannot redefine 'models.bar' from 'build@bar.vars[0]' " f"as it already exists in '{DEFAULT_PARAMS_FILE}'", ), ], @@ -230,7 +230,7 @@ def test_foreach_generated_local_vars_error(tmp_dir, repo, vars_, msg): with pytest.raises(ResolveError) as exc_info: resolver.resolve() assert str(exc_info.value) == ( - "failed to parse stage 'build-bar' (gen. from 'build') in 'dvc.yaml':" + "failed to parse stage 'build@bar' (gen. from 'build') in 'dvc.yaml':" + msg ) @@ -261,7 +261,7 @@ def test_foreach_wdir_interpolation_issues(tmp_dir, repo, wdir, msg): with pytest.raises(ResolveError) as exc_info: resolver.resolve() assert str(exc_info.value) == ( - "failed to parse 'stages.build-bar.wdir' in 'dvc.yaml':" + msg + "failed to parse 'stages.build@bar.wdir' in 'dvc.yaml':" + msg ) @@ -323,7 +323,7 @@ def test_item_key_in_generated_stage_vars(tmp_dir, repo, foreach, redefine): with pytest.raises(ResolveError) as exc_info: resolver.resolve() assert str(exc_info.value) == ( - f"attempted to redefine '{redefine}' in stage 'build-bar'" + f"attempted to redefine '{redefine}' in stage 'build@bar'" " generated through 'foreach'" )