Skip to content

Commit

Permalink
Test workflow module building with dynamic parameters
Browse files Browse the repository at this point in the history
and parameter references and validators.
  • Loading branch information
mvdbeek committed Sep 30, 2024
1 parent 2fc8209 commit 17df949
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
19 changes: 19 additions & 0 deletions lib/galaxy_test/api/test_workflow_build_module.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from galaxy_test.base.populators import (
skip_without_tool,
WorkflowPopulator,
)
from ._framework import ApiTestCase


class TestBuildWorkflowModule(ApiTestCase):

def setUp(self):
super().setUp()
self.workflow_populator = WorkflowPopulator(self.galaxy_interactor)

@skip_without_tool("select_from_url")
def test_build_module_filter_dynamic_select(self):
# Verify that filtering on parameters that depend on parameter and validators works
# fine in workflow building mode.
module = self.workflow_populator.build_module(tool_id="select_from_url")
assert not module["errors"], module["errors"]
14 changes: 14 additions & 0 deletions lib/galaxy_test/base/populators.py
Original file line number Diff line number Diff line change
Expand Up @@ -2298,6 +2298,20 @@ def import_tool(self, tool) -> Dict[str, Any]:
assert upload_response.status_code == 200, upload_response
return upload_response.json()

def build_module(
self, tool_id: Optional[str] = None, workflow_id: Optional[str] = None, inputs: Optional[Dict[str, Any]] = None
):
payload = {"inputs": inputs or {}}
if tool_id:
payload["content_id"] = tool_id
payload["type"] = "tool"
if workflow_id:
payload["content_id"] = workflow_id
payload["type"] = "subworkflow"
response = self._post("workflows/build_module", data=payload, json=True)
assert response.status_code == 200, response
return response.json()

def _import_tool_response(self, tool) -> Response:
using_requirement("admin")
tool_str = json.dumps(tool, indent=4)
Expand Down
7 changes: 7 additions & 0 deletions test/functional/tools/select_from_url.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ echo '$url_param_value_header_and_body' > '$param_value_header_and_body'
<options from_url="https://usegalaxy.org/api/genomes">
</options>
</param>
<param name="dynamic_param_filtered_with_validator" type="select">
<!-- tested in test_build_module_filter_dynamic_select -->
<options from_url="https://usegalaxy.org/api/genomes">
<filter type="param_value" ref="url_param_value" column="1" />
</options>
<validator type="no_options" message="Need at least one option here" />
</param>
<!--
<param name="url_param_value_templated" type="select">
<options from_url="http://localhost:8000/data?user=$__user_id__">
Expand Down

0 comments on commit 17df949

Please sign in to comment.