diff options
Diffstat (limited to 'wqflask/tests/unit/base/test_data_set.py')
-rw-r--r-- | wqflask/tests/unit/base/test_data_set.py | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/wqflask/tests/unit/base/test_data_set.py b/wqflask/tests/unit/base/test_data_set.py deleted file mode 100644 index 744c8a94..00000000 --- a/wqflask/tests/unit/base/test_data_set.py +++ /dev/null @@ -1,238 +0,0 @@ -"""Tests for wqflask/base/data_set.py""" - -import unittest -from unittest import mock -from dataclasses import dataclass -from gn3.monads import MonadicDict - -from wqflask import app -from base.data_set import DatasetType -from base.data_set.dataset import DataSet - -GEN_MENU_JSON = """ -{ - "datasets": { - "human": { - "HLC": { - "Liver mRNA": [ - [ - "320", - "HLC_0311", - "GSE9588 Human Liver Normal (Mar11) Both Sexes" - ] - ], - "Phenotypes": [ - [ - "635", - "HLCPublish", - "HLC Published Phenotypes" - ] - ] - } - }, - "mouse": { - "BXD": { - "Genotypes": [ - [ - "600", - "BXDGeno", - "BXD Genotypes" - ] - ], - "Hippocampus mRNA": [ - [ - "112", - "HC_M2_0606_P", - "Hippocampus Consortium M430v2 (Jun06) PDNN" - ] - ], - "Phenotypes": [ - [ - "602", - "BXDPublish", - "BXD Published Phenotypes" - ] - ] - } - } - }, - "groups": { - "human": [ - [ - "HLC", - "Liver: Normal Gene Expression with Genotypes (Merck)", - "Family:None" - ] - ], - "mouse": [ - [ - "BXD", - "BXD", - "Family:None" - ] - ] - }, - "species": [ - [ - "human", - "Human" - ], - [ - "mouse", - "Mouse" - ] - ], - "types": { - "human": { - "HLC": [ - [ - "Phenotypes", - "Traits and Cofactors", - "Phenotypes" - ], - [ - "Liver mRNA", - "Liver mRNA", - "Molecular Trait Datasets" - ] - ] - }, - "mouse": { - "BXD": [ - [ - "Phenotypes", - "Traits and Cofactors", - "Phenotypes" - ], - [ - "Genotypes", - "DNA Markers and SNPs", - "Genotypes" - ], - [ - "Hippocampus mRNA", - "Hippocampus mRNA", - "Molecular Trait Datasets" - ] - ] - } - } -} -""" - -class MockPhenotypeDataset(DataSet): - def setup(self): - self.type = "Publish" - self.query_for_group = "" - self.group = "" - - - def check_confidentiality(self): - pass - - def retrieve_other_names(self): - pass - -@dataclass -class MockGroup: - name = "Group" - -class TestDataSetTypes(unittest.TestCase): - """Tests for the DataSetType class""" - - def setUp(self): - self.test_dataset = """ - { - "AD-cases-controls-MyersGeno": "Geno", - "AD-cases-controls-MyersPublish": "Publish", - "AKXDGeno": "Geno", - "AXBXAGeno": "Geno", - "AXBXAPublish": "Publish", - "Aging-Brain-UCIPublish": "Publish", - "All Phenotypes": "Publish", - "B139_K_1206_M": "ProbeSet", - "B139_K_1206_R": "ProbeSet" - } - """ - self.app_context = app.app_context() - self.app_context.push() - - def tearDown(self): - self.app_context.pop() - - def test_data_set_type(self): - """Test that DatasetType returns correctly if the Redis Instance is not empty - and the name variable exists in the dictionary - - """ - with app.app_context(): - redis_mock = mock.Mock() - cursor_mock = mock.Mock() - redis_mock.get.return_value = self.test_dataset - self.assertEqual(DatasetType(redis_mock) - ("All Phenotypes", redis_mock, cursor_mock), "Publish") - redis_mock.get.assert_called_once_with("dataset_structure") - - @mock.patch('base.data_set.datasettype.requests.get') - def test_data_set_type_with_empty_redis(self, request_mock): - """Test that DatasetType returns correctly if the Redis Instance is empty and - the name variable exists in the dictionary - - """ - with app.app_context(): - request_mock.return_value.content = GEN_MENU_JSON - redis_mock = mock.Mock() - cursor_mock = mock.Mock() - redis_mock.get.return_value = None - data_set = DatasetType(redis_mock) - self.assertEqual(data_set("BXDGeno", redis_mock, cursor_mock), - "Geno") - self.assertEqual(data_set("BXDPublish", redis_mock, cursor_mock), - "Publish") - self.assertEqual(data_set("HLC_0311", redis_mock, cursor_mock), - "ProbeSet") - - redis_mock.set.assert_called_once_with( - "dataset_structure", - ('{"HLC_0311": "ProbeSet", ' - '"HLCPublish": "Publish", ' - '"BXDGeno": "Geno", ' - '"HC_M2_0606_P": "ProbeSet", ' - '"BXDPublish": "Publish"}')) - - -class TestDatasetAccessionId(unittest.TestCase): - """Tests for the DataSetType class""" - - @mock.patch("base.data_set.dataset.query_sql") - @mock.patch("base.data_set.dataset.DatasetGroup") - def test_get_accession_id(self, mock_dataset_group, mock_query_sql): - def mock_fn(): - yield MonadicDict({"accession_id": 7}) - mock_dataset_group.return_value = MockGroup() - mock_query_sql.return_value = mock_fn() - sample_dataset = MockPhenotypeDataset( - name="BXD-LongevityPublish", - get_samplelist=False, - group_name="BXD", - redis_conn=mock.Mock() - ) - sample_dataset\ - .accession_id\ - .bind(lambda x: self.assertEqual(7, x)) - - @mock.patch("base.data_set.dataset.query_sql") - @mock.patch("base.data_set.dataset.DatasetGroup") - def test_get_accession_id_empty_return(self, mock_dataset_group, - mock_query_sql): - mock_dataset_group.return_value = MockGroup() - mock_query_sql.return_value = None - sample_dataset = MockPhenotypeDataset( - name="BXD-LongevityPublish", - get_samplelist=False, - group_name="BXD", - redis_conn=mock.Mock() - ) - sample_dataset\ - .accession_id\ - .bind(lambda x: self.assertNone(x)) |