From 1e57247f305ba23236a496cef5cf94764746f1fd Mon Sep 17 00:00:00 2001 From: Tim Pillinger <26465611+wxtim@users.noreply.github.com> Date: Thu, 17 Nov 2022 10:15:05 +0000 Subject: [PATCH] add workflow_id to sysargv for play step if it isn't there --- cylc/flow/option_parsers.py | 2 ++ tests/unit/test_option_parsers.py | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/cylc/flow/option_parsers.py b/cylc/flow/option_parsers.py index 572cdfca7e..dcbe03e4a8 100644 --- a/cylc/flow/option_parsers.py +++ b/cylc/flow/option_parsers.py @@ -814,9 +814,11 @@ def cleanup_sysargv( # replace source path with workflow ID. if str(source) in sys.argv: sys.argv.remove(str(source)) + if workflow_id not in sys.argv: sys.argv.append(workflow_id) + def log_subcommand(command, workflow_id): """Log a command run as part of a sequence. diff --git a/tests/unit/test_option_parsers.py b/tests/unit/test_option_parsers.py index 2ec3334a17..004e6508aa 100644 --- a/tests/unit/test_option_parsers.py +++ b/tests/unit/test_option_parsers.py @@ -382,6 +382,21 @@ def test_combine_options(inputs, expect): 'play --foo something myworkflow'.split(), id='replace path' ), + param( + 'vip --foo something'.split(), + { + 'script_name': 'play', + 'workflow_id': 'myworkflow', + 'compound_script_opts': [ + OptionSettings(['--foo', '-f'])], + 'script_opts': [ + OptionSettings(['--foo', '-f']), + ], + 'source': './myworkflow', + }, + 'play --foo something myworkflow'.split(), + id='no path given' + ), ] ) def test_cleanup_sysargv(monkeypatch, argv_before, kwargs, expect): @@ -510,4 +525,4 @@ def test__in_list(): first = OptionSettings(['--foo']) second = OptionSettings(['--foo']) third = OptionSettings(['--bar']) - assert first._in_list([second, third]) == True + assert first._in_list([second, third]) is True