diff --git a/lib/galaxy/tool_util/verify/interactor.py b/lib/galaxy/tool_util/verify/interactor.py index c966460b462..0db67130ff1 100644 --- a/lib/galaxy/tool_util/verify/interactor.py +++ b/lib/galaxy/tool_util/verify/interactor.py @@ -132,9 +132,8 @@ class GalaxyInteractorApi: def get_tool_tests(self, tool_id, tool_version=None): url = "tools/%s/test_data" % tool_id - if tool_version is not None: - url += "?tool_version=%s" % tool_version - response = self._get(url) + params = {'tool_version': tool_version} if tool_version else None + response = self._get(url, data=params) assert response.status_code == 200, "Non 200 response from tool test API. [%s]" % response.content return response.json() diff --git a/lib/galaxy_test/api/test_galaxy_interactor.py b/lib/galaxy_test/api/test_galaxy_interactor.py index deee324b556..0e3613ce6e4 100644 --- a/lib/galaxy_test/api/test_galaxy_interactor.py +++ b/lib/galaxy_test/api/test_galaxy_interactor.py @@ -2,6 +2,7 @@ from packaging.version import Version +from galaxy_test.base.populators import skip_without_tool from ._framework import ApiTestCase @@ -11,3 +12,21 @@ class GalaxyInteractorBackwardCompatTestCase(ApiTestCase): self.galaxy_interactor._target_galaxy_version = Version("18.09") assert self.galaxy_interactor.supports_test_data_download is False assert self.galaxy_interactor.test_data_download(tool_id='cat1', filename='1.bed').startswith(b'chr1\t147962192\t147962580') + + +class GalaxyInteractorTestCase(ApiTestCase): + + @skip_without_tool("multiple_versions") + def test_get_tool_tests(self): + # test that get_tool_tests will return the right tests when the tool_version has a '+' in it + test_data = self.galaxy_interactor.get_tool_tests(tool_id="multiple_versions", tool_version="0.1+galaxy6") + print(test_data) + assert isinstance(test_data, list) + assert len(test_data) > 0 + assert isinstance(test_data[0], dict) + assert test_data[0].get('tool_version') == "0.1+galaxy6" + + test_data = self.galaxy_interactor.get_tool_tests(tool_id="multiple_versions") # test that tool_version=None does not break it + assert isinstance(test_data, list) + assert len(test_data) > 0 + assert isinstance(test_data[0], dict) diff --git a/lib/galaxy_test/api/test_tools.py b/lib/galaxy_test/api/test_tools.py index faa693d9f5e..d6f32b2a4b9 100644 --- a/lib/galaxy_test/api/test_tools.py +++ b/lib/galaxy_test/api/test_tools.py @@ -724,7 +724,7 @@ class ToolsTestCase(ApiTestCase, TestsTools): test_data_response = self._get("tools/%s/test_data?tool_version=*" % "multiple_versions") test_data_response.raise_for_status() test_data_dicts = test_data_response.json() - assert len(test_data_dicts) == 2 + assert len(test_data_dicts) == 3 @skip_without_tool("multiple_versions") @uses_test_history(require_new=False) diff --git a/test/functional/tools/multiple_versions_v01galaxy6.xml b/test/functional/tools/multiple_versions_v01galaxy6.xml new file mode 100644 index 00000000000..030b6bc70a9 --- /dev/null +++ b/test/functional/tools/multiple_versions_v01galaxy6.xml @@ -0,0 +1,21 @@ + + + echo "Version 0.1+galaxy6" > $out_file1 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml index 0e96f47727e..98d2d67b064 100644 --- a/test/functional/tools/samples_tool_conf.xml +++ b/test/functional/tools/samples_tool_conf.xml @@ -195,6 +195,7 @@ +