Warning

This document is for an old release 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_datatypes

import time

from requests import put

from galaxy_test.base.decorators import requires_admin
from ._framework import ApiTestCase

HIDDEN_DURING_UPLOAD_DATATYPE = "fli"


[docs]class TestDatatypesApi(ApiTestCase):
[docs] def test_index(self): datatypes = self._index_datatypes() for common_type in ["tabular", "fasta"]: assert common_type in datatypes, f"{common_type} not in {datatypes}"
[docs] def test_index_upload_only(self): # fli is not displayed in upload - so only show it if upload_only # is explicitly false. datatypes = self._index_datatypes(data={"upload_only": False}) assert HIDDEN_DURING_UPLOAD_DATATYPE in datatypes datatypes = self._index_datatypes(data={"upload_only": True}) assert HIDDEN_DURING_UPLOAD_DATATYPE not in datatypes datatypes = self._index_datatypes() assert HIDDEN_DURING_UPLOAD_DATATYPE not in datatypes
[docs] def test_full_index(self): datatypes = self._index_datatypes(data={"extension_only": False}) for datatype in datatypes: self._assert_has_keys(datatype, "extension", "description", "description_url") assert datatype["extension"] != HIDDEN_DURING_UPLOAD_DATATYPE
[docs] def test_mapping(self): response = self._get("datatypes/mapping") self._assert_status_code_is(response, 200) mapping_dict = response.json() self._assert_has_keys(mapping_dict, "ext_to_class_name", "class_to_classes")
[docs] def test_types_and_mapping(self): response = self._get("datatypes/types_and_mapping") self._assert_status_code_is(response, 200) response_dict = response.json() self._assert_has_keys(response_dict, "datatypes", "datatypes_mapping") mapping_dict = response_dict["datatypes_mapping"] self._assert_has_keys(mapping_dict, "ext_to_class_name", "class_to_classes") datatypes = response_dict["datatypes"] for common_type in ["tabular", "fasta"]: assert common_type in datatypes, f"{common_type} not in {datatypes}"
[docs] def test_sniffers(self): response = self._get("datatypes/sniffers") self._assert_status_code_is(response, 200) sniffer_list = response.json() owl_index = sniffer_list.index("galaxy.datatypes.xml:Owl") xml_index = sniffer_list.index("galaxy.datatypes.xml:GenericXml") assert owl_index < xml_index
[docs] def test_converters(self): response = self._get("datatypes/converters") self._assert_status_code_is(response, 200) converters_list = response.json() found_fasta_to_tabular = False for converter in converters_list: self._assert_has_key(converter, "source", "target", "tool_id") if converter["source"] == "fasta" and converter["target"] == "tabular": found_fasta_to_tabular = True assert found_fasta_to_tabular
[docs] @requires_admin def test_converter_present_after_toolbox_reload(self): response = self._get("tools", data={"tool_id": "CONVERTER_fasta_to_tabular"}) self._assert_status_code_is(response, 200) converters = len(response.json()) assert converters == 1 url = self._api_url("configuration/toolbox") put_response = put(url, params=dict(key=self.master_api_key)) self._assert_status_code_is(put_response, 200) time.sleep(2) response = self._get("tools", data={"tool_id": "CONVERTER_fasta_to_tabular"}) self._assert_status_code_is(response, 200) assert converters == len(response.json())
[docs] def test_edam_formats(self): response = self._get("datatypes/edam_formats") self._assert_status_code_is(response, 200) edam_formats = response.json() assert isinstance(edam_formats, dict) assert edam_formats["ab1"] == "format_3000" response = self._get("datatypes/edam_formats/detailed") self._assert_status_code_is(response, 200) edam_formats = response.json() assert isinstance(edam_formats, dict) assert isinstance(edam_formats["afg"], dict) assert edam_formats["afg"]["prefix_IRI"] == "format_3582" assert edam_formats["afg"]["label"] == "afg"
[docs] def test_edam_data(self): response = self._get("datatypes/edam_data") self._assert_status_code_is(response, 200) edam_data = response.json() assert isinstance(edam_data, dict) assert edam_data["ab1"] == "data_0924" response = self._get("datatypes/edam_data/detailed") edam_data = response.json() assert isinstance(edam_data, dict) assert isinstance(edam_data["afg"], dict) assert edam_data["afg"]["prefix_IRI"] == "data_0925" assert edam_data["afg"]["label"] == "Sequence assembly"
def _index_datatypes(self, data=None): data = data or {} response = self._get("datatypes", data=data) self._assert_status_code_is(response, 200) datatypes = response.json() assert isinstance(datatypes, list) return datatypes