Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy_test.api.test_tool_data
""" Tests for the tool data API.
"""
import operator
from ._framework import ApiTestCase
[docs]class ToolDataApiTestCase(ApiTestCase):
[docs] def test_admin_only(self):
index_response = self._get("tool_data", admin=False)
self._assert_status_code_is(index_response, 403)
[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, "Length of files [%s] was not 2." % files
[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
# Following test case rendered invalid by the fix in
# https://github.com/galaxyproject/galaxy/commit/48f77dc742acf01ddbafafcc4634e69378f1f020#diff-bfb557a99c1f7d646d4968d8d680b885R154.
# TODO: Restore the test case when test framework allows actions from
# admin users.
# def test_delete_entry(self):
# show_response = self._get( "tool_data/testbeta", admin=True )
# original_count = len(show_response.json()["fields"])
# dataset_populator = DatasetPopulator( self.galaxy_interactor )
# history_id = dataset_populator.new_history()
# payload = dataset_populator.run_tool_payload(
# tool_id="data_manager",
# inputs={"ignored_value": "moo"},
# history_id=history_id,
# )
# create_response = self._post( "tools", data=payload )
# self._assert_status_code_is( create_response, 200 )
# dataset_populator.wait_for_history( history_id, assert_ok=True )
# show_response = self._get( "tool_data/testbeta", admin=True )
# updated_fields = show_response.json()["fields"]
# assert len(updated_fields) == original_count + 1
# field0 = updated_fields[0]
# url = self._api_url( "tool_data/testbeta?key=%s" % self.galaxy_interactor.master_api_key )
# delete( url, data=json.dumps({"values": "\t".join(field0)}) )
# show_response = self._get( "tool_data/testbeta", admin=True )
# updated_fields = show_response.json()["fields"]
# assert len(updated_fields) == original_count