diff --git a/lib/galaxy/workflow/refactor/execute.py b/lib/galaxy/workflow/refactor/execute.py index fc38a9351468..264fa843d830 100644 --- a/lib/galaxy/workflow/refactor/execute.py +++ b/lib/galaxy/workflow/refactor/execute.py @@ -531,6 +531,9 @@ def _patch_step(self, execution, step, step_def): if upgrade_input["name"] == input_name: matching_input = upgrade_input break + elif step.when_expression and f"inputs.{input_name}" in step.when_expression: + # TODO: eventually track step inputs more formally + matching_input = upgrade_input # In the future check parameter type, format, mapping status... if matching_input is None: diff --git a/test/integration/test_workflow_refactoring.py b/test/integration/test_workflow_refactoring.py index d2501090aeef..d68b8916145b 100644 --- a/test/integration/test_workflow_refactoring.py +++ b/test/integration/test_workflow_refactoring.py @@ -548,9 +548,11 @@ def test_tool_version_upgrade_keeps_when_expression(self): the_step: tool_id: multiple_versions tool_version: '0.1' + in: + when: the_bool state: inttest: 0 - when: $inputs.the_bool + when: $(inputs.when) """ ) assert self._latest_workflow.step_by_label("the_step").tool_version == "0.1"