Files
galaxy/lib/galaxy_test/api/test_search.py
T
Nicola SoranzoandMarius van den Beek 0de3051869 Use response.text instead of response.json() when request failed
We cannot be sure that the response is valid JSON if there was an error.

Also do not use mutable data structures for argument defaults.

Co-authored-by: Marius van den Beek <m.vandenbeek@gmail.com>
2020-05-13 16:42:31 +01:00

33 lines
1.3 KiB
Python

from requests import delete
from galaxy_test.base.populators import WorkflowPopulator
from ._framework import ApiTestCase
class SearchApiTestCase(ApiTestCase):
def test_search_workflows(self):
workflow_populator = WorkflowPopulator(self.galaxy_interactor)
workflow_id = workflow_populator.simple_workflow("test_for_search")
search_response = self.__search("select * from workflow")
assert self.__has_result_with_name(search_response, "test_for_search"), search_response.text
# Deleted
delete_url = self._api_url("workflows/%s" % workflow_id, use_key=True)
delete(delete_url)
search_response = self.__search("select * from workflow where deleted = False")
assert not self.__has_result_with_name(search_response, "test_for_search"), search_response.text
def __search(self, query):
data = dict(query=query)
search_response = self._post("search", data=data)
self._assert_status_code_is(search_response, 200)
return search_response
def __has_result_with_name(self, search_response, name):
search_response_object = search_response.json()
assert "results" in search_response_object, search_response_object
results = search_response_object["results"]
return name in map(lambda r: r.get("name", None), results)