Source code for galaxy_test.api.test_tool_data
"""Tests for the tool data API.
The tests for the DELETE endpoint can be found in the
integration tests directory (tests/integration/test_tool_data_delete.py)
since these tests can mutate the server config state.
"""
import operator
from galaxy.util import UNKNOWN
from ._framework import ApiTestCase
[docs]class TestToolDataApi(ApiTestCase):
[docs] def test_admin_only(self):
index_response = self._get("tool_data", admin=False)
self._assert_status_code_is(index_response, 200)
[docs] def test_list(self):
index_response = self._get("tool_data", admin=True)
self._assert_status_code_is(index_response, 200)
print(index_response.content)
index = index_response.json()
assert "testalpha" in [operator.itemgetter("name")(_) for _ in index]
[docs] def test_show(self):
show_response = self._get("tool_data/testalpha", admin=True)
self._assert_status_code_is(show_response, 200)
print(show_response.content)
data_table = show_response.json()
assert data_table["columns"] == ["value", "name", "path"]
first_entry = data_table["fields"][0]
assert first_entry[0] == "data1"
assert first_entry[1] == "data1name"
assert first_entry[2].endswith("test/functional/tool-data/data1/entry.txt")
[docs] def test_show_field(self):
show_field_response = self._get("tool_data/testalpha/fields/data1", admin=True)
self._assert_status_code_is(show_field_response, 200)
field = show_field_response.json()
self._assert_has_keys(field, "files", "name", "fields", "fingerprint", "base_dir")
files = field["files"]
assert len(files) == 2, f"Length of files [{files}] was not 2."
[docs] def test_download_field_file(self):
show_field_response = self._get("tool_data/testalpha/fields/data1/files/entry.txt", admin=True)
self._assert_status_code_is(show_field_response, 200)
content = show_field_response.text
assert content == "This is data 1.", content
[docs] def test_reload(self):
show_response = self._get("tool_data/test_fasta_indexes/reload", admin=True)
self._assert_status_code_is(show_response, 200)
print(show_response.content)
data_table = show_response.json()
assert data_table["columns"] == ["value", "dbkey", "name", "path"]
[docs] def test_show_unknown_raises_404(self):
show_response = self._get("tool_data/unknown", admin=True)
self._assert_status_code_is(show_response, 404)
[docs] def test_show_unknown_field_raises_404(self):
show_response = self._get("tool_data/testalpha/fields/unknown", admin=True)
self._assert_status_code_is(show_response, 404)
[docs] def test_reload_unknown_raises_404(self):
show_response = self._get("tool_data/unknown/reload", admin=True)
self._assert_status_code_is(show_response, 404)
[docs] def test_download_field_unknown_file_raises_404(self):
show_field_response = self._get("tool_data/testalpha/fields/data1/files/unknown.txt", admin=True)
self._assert_status_code_is(show_field_response, 404)
[docs] def test_delete_without_payload_raises_400(self):
delete_response = self._delete("tool_data/testbeta", admin=True)
self._assert_status_code_is(delete_response, 400)
[docs] def test_delete_without_values_raises_400(self):
payload = {UNKNOWN: "test"}
delete_response = self._delete("tool_data/testbeta", data=payload, admin=True)
self._assert_status_code_is(delete_response, 400)
[docs] def test_delete_with_wrong_values_raises_400(self):
payload = {"values": "wrong"}
delete_response = self._delete("tool_data/testbeta", data=payload, admin=True)
self._assert_status_code_is(delete_response, 400)