mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
73 lines
3.0 KiB
Python
73 lines
3.0 KiB
Python
"""Integration tests for structured datasets (currently only HDF5 supported).
|
|
|
|
This file checks the ability to access datasets using the get_structured_content
|
|
API and services.
|
|
"""
|
|
|
|
import os
|
|
|
|
from galaxy_test.base.populators import DatasetPopulator
|
|
from galaxy_test.driver import integration_util
|
|
|
|
SCRIPT_DIR = os.path.normpath(os.path.dirname(__file__))
|
|
TEST_DATA_DIRECTORY = os.path.join(SCRIPT_DIR, os.pardir, os.pardir, "test-data")
|
|
|
|
|
|
class TestStructuredDataset(integration_util.IntegrationTestCase):
|
|
require_admin_user = True
|
|
dataset_populator: DatasetPopulator
|
|
test_history_id: str
|
|
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.dataset_populator = DatasetPopulator(self.galaxy_interactor)
|
|
self.test_history_id = self.dataset_populator.new_history()
|
|
|
|
def test_fail_on_nonbinary(self):
|
|
dataset = self.dataset_populator.new_dataset(
|
|
self.test_history_id, f"file://{TEST_DATA_DIRECTORY}/random-file", file_type="txt", wait=True
|
|
)
|
|
dataset_id = dataset["dataset_id"]
|
|
response = self._get(f"datasets/{dataset_id}/content/meta")
|
|
self._assert_status_code_is(response, 500)
|
|
|
|
def test_api_meta(self):
|
|
dataset = self.dataset_populator.new_dataset(
|
|
self.test_history_id, f"file://{TEST_DATA_DIRECTORY}/chopper.h5", file_type="h5", wait=True
|
|
)
|
|
dataset_id = dataset["dataset_id"]
|
|
response = self._get(f"datasets/{dataset_id}/content/meta")
|
|
self._assert_status_code_is(response, 200)
|
|
hvals = response.json()
|
|
self._assert_has_keys(hvals, "attributes", "name", "kind")
|
|
|
|
def test_api_attr(self):
|
|
dataset = self.dataset_populator.new_dataset(
|
|
self.test_history_id, f"file://{TEST_DATA_DIRECTORY}/chopper.h5", file_type="h5", wait=True
|
|
)
|
|
dataset_id = dataset["dataset_id"]
|
|
response = self._get(f"datasets/{dataset_id}/content/attr")
|
|
self._assert_status_code_is(response, 200)
|
|
hvals = response.json()
|
|
self._assert_has_keys(hvals, "HDF5_Version", "NeXus_version", "default", "file_name", "file_time")
|
|
|
|
def test_api_stats(self):
|
|
dataset = self.dataset_populator.new_dataset(
|
|
self.test_history_id, f"file://{TEST_DATA_DIRECTORY}/chopper.h5", file_type="h5", wait=True
|
|
)
|
|
dataset_id = dataset["dataset_id"]
|
|
response = self._get(f"datasets/{dataset_id}/content/stats?path=%2Fentry%2Fdata%2Fdata")
|
|
self._assert_status_code_is(response, 200)
|
|
hvals = response.json()
|
|
self._assert_has_keys(hvals, "strict_positive_min", "positive_min", "min", "max", "mean", "std")
|
|
|
|
def test_api_data(self):
|
|
dataset = self.dataset_populator.new_dataset(
|
|
self.test_history_id, f"file://{TEST_DATA_DIRECTORY}/chopper.h5", file_type="h5", wait=True
|
|
)
|
|
dataset_id = dataset["dataset_id"]
|
|
response = self._get(f"datasets/{dataset_id}/content/data?path=%2Fentry%2Fdata%2Fdata")
|
|
self._assert_status_code_is(response, 200)
|
|
hvals = response.json()
|
|
assert len(hvals) == 148
|