Unverified Commit 735f9186 authored by mvdbeek's avatar mvdbeek
Browse files

Test mapping over in conditional invocation

parent 50d42397
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -2042,6 +2042,66 @@ should_run:
            assert message["details"] == "Type is: str"
            assert message["workflow_step_id"] == 2

    def test_run_workflow_subworkflow_conditional_with_simple_mapping_step(self):
        with self.dataset_populator.test_history() as history_id:
            summary = self._run_workflow(
                """class: GalaxyWorkflow
inputs:
  should_run:
    type: boolean
  some_collection:
    type: data_collection
steps:
  subworkflow:
    run:
      class: GalaxyWorkflow
      inputs:
        some_collection:
          type: data_collection
        should_run:
          type: boolean
      steps:
        a_tool_step:
          tool_id: cat1
          in:
            input1: some_collection
    in:
      some_collection: some_collection
      should_run: should_run
    outputs:
      inner_out: a_tool_step/out_file1
    when: $(inputs.should_run)
outputs:
  outer_output:
    outputSource: subworkflow/inner_out
""",
                test_data="""
some_collection:
  collection_type: list
  elements:
    - identifier: true
      content: A
    - identifier: false
      content: B
  type: File
should_run:
  value: false
  type: raw
""",
                history_id=history_id,
                wait=True,
                assert_ok=True,
            )
            invocation_details = self.workflow_populator.get_invocation(summary.invocation_id, step_details=True)
            subworkflow_invocation_id = invocation_details["steps"][-1]["subworkflow_invocation_id"]
            self.workflow_populator.wait_for_invocation_and_jobs(
                history_id=history_id, workflow_id="whatever", invocation_id=subworkflow_invocation_id
            )
            invocation_details = self.workflow_populator.get_invocation(subworkflow_invocation_id, step_details=True)
            for step in invocation_details["steps"]:
                if step["workflow_step_label"] == "a_tool_step":
                    assert sum(1 for j in step["jobs"] if j["state"] == "skipped") == 2

    def test_run_workflow_subworkflow_conditional_step(self):
        with self.dataset_populator.test_history() as history_id:
            summary = self._run_workflow(