aboutsummaryrefslogtreecommitdiff
path: root/gn2/tests/unit/wqflask/show_trait
diff options
context:
space:
mode:
authorArun Isaac2023-12-29 18:55:37 +0000
committerArun Isaac2023-12-29 19:01:46 +0000
commit204a308be0f741726b9a620d88fbc22b22124c81 (patch)
treeb3cf66906674020b530c844c2bb4982c8a0e2d39 /gn2/tests/unit/wqflask/show_trait
parent83062c75442160427b50420161bfcae2c5c34c84 (diff)
downloadgenenetwork2-204a308be0f741726b9a620d88fbc22b22124c81.tar.gz
Namespace all modules under gn2.
We move all modules under a gn2 directory. This is important for "correct" packaging and deployment as a Guix service.
Diffstat (limited to 'gn2/tests/unit/wqflask/show_trait')
-rw-r--r--gn2/tests/unit/wqflask/show_trait/__init__.py0
-rw-r--r--gn2/tests/unit/wqflask/show_trait/test_export_trait_data.py151
-rw-r--r--gn2/tests/unit/wqflask/show_trait/test_get_max_digits.py15
3 files changed, 166 insertions, 0 deletions
diff --git a/gn2/tests/unit/wqflask/show_trait/__init__.py b/gn2/tests/unit/wqflask/show_trait/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/gn2/tests/unit/wqflask/show_trait/__init__.py
diff --git a/gn2/tests/unit/wqflask/show_trait/test_export_trait_data.py b/gn2/tests/unit/wqflask/show_trait/test_export_trait_data.py
new file mode 100644
index 00000000..a933d0bf
--- /dev/null
+++ b/gn2/tests/unit/wqflask/show_trait/test_export_trait_data.py
@@ -0,0 +1,151 @@
+import datetime
+import unittest
+from unittest import mock
+from gn2.wqflask.show_trait.export_trait_data import dict_to_sorted_list
+from gn2.wqflask.show_trait.export_trait_data import cmp_samples
+from gn2.wqflask.show_trait.export_trait_data import export_sample_table
+from gn2.wqflask.show_trait.export_trait_data import get_export_metadata
+
+
+class AttributesSetter:
+ def __init__(self, obj):
+ for key, value in obj.items():
+ setattr(self, key, value)
+
+
+class TestExportTraits(unittest.TestCase):
+ """Test methods for exporting traits and metadata"""
+
+ @mock.patch("wqflask.show_trait.export_trait_data.datetime")
+ @mock.patch("wqflask.show_trait.export_trait_data.create_trait")
+ @mock.patch("wqflask.show_trait.export_trait_data.data_set")
+ def test_get_export_metadata(self, data_mock, trait_mock, date_mock):
+ """test for exporting metadata with dataset.type=Publish"""
+ mock_dataset = AttributesSetter({"type": "Publish",
+ "name": "HC_M2_0606_P",
+ "dataset_name": "HC_M2_0606_P"})
+
+ mock_dataset.group = AttributesSetter({"name": "C"})
+ data_mock.create_dataset.return_value = mock_dataset
+
+ trait_data = {
+ "symbol": "Nr3c1",
+ "description_display": "nuclear receptor subfamily 3,group C, member 1 (glucocorticoid receptor); distal 3' UTR",
+ "title": "Trait_1 title",
+
+ "authors": "XL_1",
+ "journal": ""
+
+ }
+
+ date_mock.datetime.now.return_value = datetime.datetime(
+ 2022, 8, 8, 19, 2, 31, 628813)
+ trait_mock.return_value = AttributesSetter(trait_data)
+
+ results = get_export_metadata({
+ "trait_id": "1460303_at",
+ "trait_display_name": "1460303_at",
+ "dataset": "HC_M2_0606_P",
+ "group": "BXD",
+ })
+
+ expected = [["Phenotype ID:", "1460303_at"],
+ ["Phenotype URL: ", "http://genenetwork.org/show_trait?trait_id=1460303_at&dataset=HC_M2_0606_P"],
+ ["Group: ", "C"],
+ ["Phenotype: ",
+ 'nuclear receptor subfamily 3","group C"," member 1 (glucocorticoid receptor); distal 3\' UTR'],
+ ["Authors: ", "XL_1"],
+ ["Title: ", "Trait_1 title"],
+ ["Journal: ", "N/A"],
+ ["Dataset Link: ", "http://gn1.genenetwork.org/webqtl/main.py?FormID=sharinginfo&InfoPageName=HC_M2_0606_P"],
+ ["Export Date: ", "August 08, 2022"],
+ ["Export Time: ", "19:02 GMT"]]
+
+ self.assertEqual(results, expected)
+
+ def test_dict_to_sortedlist(self):
+ """test for conversion of dict to sorted list"""
+ sample1 = {
+ "other": "exp1",
+ "name": "exp2"
+ }
+ sample2 = {
+ "se": 1,
+ "num_cases": 4,
+ "value": 6,
+ "name": 3
+
+ }
+ rever = {
+ "name": 3,
+ "value": 6,
+ "num_cases": 4,
+ "se": 1
+ }
+ oneItem = {
+ "item1": "one"
+ }
+
+ self.assertEqual(["exp2", "exp1"], dict_to_sorted_list(sample1))
+ self.assertEqual([3, 6, 1, 4], dict_to_sorted_list(sample2))
+ self.assertEqual([3, 6, 1, 4], dict_to_sorted_list(rever))
+ self.assertEqual(["one"], dict_to_sorted_list(oneItem))
+ """test that the func returns the values not the keys"""
+ self.assertFalse(["other", "name"] == dict_to_sorted_list(sample1))
+
+ def test_cmp_samples(self):
+ """test for comparing samples function"""
+ sampleA = [
+ [
+ ("value", "other"),
+ ("name", "test_name")
+ ]
+ ]
+ sampleB = [
+ [
+ ("value", "other"),
+ ("unknown", "test_name")
+ ]
+ ]
+ sampleC = [
+ [("other", "value"),
+ ("name", "value")
+ ],
+ [
+ ("name", "value"),
+ ("value", "name")
+ ],
+ [
+ ("other", "value"),
+ ("name", "value"
+ )],
+ [
+ ("name", "name1"),
+ ("se", "valuex")
+ ],
+ [(
+ "value", "name1"),
+ ("se", "valuex")
+ ],
+ [(
+ "other", "name1"),
+ ("se", "valuex"
+ )
+ ],
+ [(
+ "name", "name_val"),
+ ("num_cases", "num_val")
+ ],
+ [(
+ "other_a", "val_a"),
+ ("other_b", "val"
+ )
+ ]
+ ]
+ results = [cmp_samples(val[0], val[1]) for val in sampleA]
+ resultB = [cmp_samples(val[0], val[1]) for val in sampleB]
+ resultC = [cmp_samples(val[0], val[1]) for val in sampleC]
+
+ self.assertEqual(1, *results)
+ self.assertEqual(-1, *resultB)
+ self.assertEqual([1, -1, 1, -1, -1, 1, -1, -1], resultC)
diff --git a/gn2/tests/unit/wqflask/show_trait/test_get_max_digits.py b/gn2/tests/unit/wqflask/show_trait/test_get_max_digits.py
new file mode 100644
index 00000000..45484f17
--- /dev/null
+++ b/gn2/tests/unit/wqflask/show_trait/test_get_max_digits.py
@@ -0,0 +1,15 @@
+import pytest
+import unittest
+
+from gn2.wqflask.show_trait.show_trait import get_max_digits
+
+@unittest.skip("Too complicated")
+@pytest.mark.parametrize(
+ "trait_vals,expected",
+ (((
+ (0, 1345, 92, 734),
+ (234253, 33, 153, 5352),
+ (3542, 24, 135)),
+ [3, 5, 3]),))
+def test_get_max_digits(trait_vals, expected):
+ assert get_max_digits(trait_vals) == expected