Unverified Commit 444ae587 authored by Marius van den Beek's avatar Marius van den Beek Committed by GitHub
Browse files

Merge pull request #18446 from mvdbeek/when_upgrade_fix

[24.0] Fix dropped when_expression on step upgrade
parents 368eeaa1 ed8dc4b8
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -531,6 +531,9 @@ class WorkflowRefactorExecutor:
                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:
+29 −0
Original line number Diff line number Diff line
@@ -537,6 +537,35 @@ steps:
        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(
            """