Skip to content

Commit 12d4c56

Browse files
committed
Test the UMAP coordinates and sparse expression endpoints
Whole-response equality against literal dicts, as in test_rnaseq_gene_expression.py. AT1G01010's expected dict has no key 45, so anything filling in zeros fails; it is requested as At1g01010 to exercise the case-insensitive collation the plain-equality query relies on.
1 parent 42060f0 commit 12d4c56

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from api import app
2+
from unittest import TestCase
3+
4+
5+
class TestIntegrations(TestCase):
6+
def setUp(self):
7+
self.app_client = app.test_client()
8+
9+
def test_get_arabidopsis_nie_umap_coordinates(self):
10+
"""This tests the UMAP coordinates returned for the Arabidopsis NIE UMAP database
11+
:return:
12+
"""
13+
# Valid data
14+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_umap")
15+
expected = {
16+
"wasSuccessful": True,
17+
"data": {
18+
"43": {"umap_1": -6.89231, "umap_2": 7.56863, "cell_type": "Metabolic stress state"},
19+
"44": {"umap_1": 2.87577, "umap_2": -4.82349, "cell_type": "Dividing"},
20+
"45": {"umap_1": -0.262505, "umap_2": -8.55344, "cell_type": "Guard"},
21+
"46": {"umap_1": -4.5876, "umap_2": 6.05261, "cell_type": "Defense state"},
22+
},
23+
}
24+
self.assertEqual(response.json, expected)
25+
26+
# Invalid database
27+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_um;ap")
28+
expected = {"wasSuccessful": False, "error": "Invalid database"}
29+
self.assertEqual(response.json, expected)
30+
31+
def test_get_arabidopsis_nie_umap_gene(self):
32+
"""This tests the sparse UMAP expression data returned for a gene. Cells with no key are zero.
33+
:return:
34+
"""
35+
# Valid data, with no expression in cell 45
36+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_umap/At1g01010")
37+
expected = {"wasSuccessful": True, "data": {"43": 1.152292, "44": 1.546603, "46": 1.392931}}
38+
self.assertEqual(response.json, expected)
39+
40+
# Valid data, with expression in every cell
41+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_umap/AT3G18780")
42+
expected = {
43+
"wasSuccessful": True,
44+
"data": {"43": 1.673516, "44": 3.142986, "45": 1.490115, "46": 1.953491},
45+
}
46+
self.assertEqual(response.json, expected)
47+
48+
# Invalid gene
49+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_umap/At1g0101x")
50+
expected = {"wasSuccessful": False, "error": "Invalid gene id"}
51+
self.assertEqual(response.json, expected)
52+
53+
# Invalid database
54+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_um;ap/At1g01010")
55+
expected = {"wasSuccessful": False, "error": "Invalid database"}
56+
self.assertEqual(response.json, expected)
57+
58+
# No data for a valid gene
59+
response = self.app_client.get("/umap_gene_expression/arabidopsis_NIE_umap/At1g01011")
60+
expected = {
61+
"wasSuccessful": False,
62+
"error": "There are no data found for the given gene",
63+
}
64+
self.assertEqual(response.json, expected)

0 commit comments

Comments
 (0)