Skip to content

Commit

Permalink
Merge pull request #18446 from mvdbeek/when_upgrade_fix
Browse files Browse the repository at this point in the history
[24.0] Fix dropped when_expression on step upgrade
  • Loading branch information
mvdbeek authored Jul 1, 2024
2 parents 368eeaa + ed8dc4b commit 444ae58
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/galaxy/workflow/refactor/execute.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
29 changes: 29 additions & 0 deletions test/integration/test_workflow_refactoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,35 @@ def test_tool_version_upgrade_no_state_change(self):
assert len(action_executions[0].messages) == 0
assert self._latest_workflow.step_by_label("the_step").tool_version == "0.2"

def test_tool_version_upgrade_keeps_when_expression(self):
self.workflow_populator.upload_yaml_workflow(
"""
class: GalaxyWorkflow
inputs:
the_bool:
type: boolean
steps:
the_step:
tool_id: multiple_versions
tool_version: '0.1'
in:
when: the_bool
state:
inttest: 0
when: $(inputs.when)
"""
)
assert self._latest_workflow.step_by_label("the_step").tool_version == "0.1"
actions: ActionsJson = [
{"action_type": "upgrade_tool", "step": {"label": "the_step"}},
]
action_executions = self._refactor(actions).action_executions
assert len(action_executions) == 1
assert len(action_executions[0].messages) == 0
step = self._latest_workflow.step_by_label("the_step")
assert step.tool_version == "0.2"
assert step.when_expression

def test_tool_version_upgrade_state_added(self):
self.workflow_populator.upload_yaml_workflow(
"""
Expand Down

0 comments on commit 444ae58

Please sign in to comment.