Do not calculate layout, used saved layout instead (#343)

* Do not calculate layout, used saved layout instead

See for rationale: https://docs.google.com/document/d/1HJFvbdDHxxgkCW0DZzdTZ9CUMgc2ef2rQFukATBQWvE/edit

* Error handling for when layout has not been precomputed

* Server error (500) not client error (400) for unprepared data
This commit is contained in:
Charlotte Weaver
2018-10-18 11:51:38 -07:00
committed by GitHub
parent 2616b5c185
commit 06f402ab0a
5 changed files with 92 additions and 70 deletions
+19 -19
View File
@@ -70,27 +70,27 @@ class EndPoints(unittest.TestCase):
self.assertEqual(result_data["layout"]["ndims"], 2)
self.assertEqual(len(result_data["layout"]["coordinates"]), 2638)
def test_put_layout(self):
endpoint = "layout/obs"
url = f"{URL_BASE}{endpoint}"
obs_filter = {
"filter": {
"obs": {
"annotation_value": [
{"name": "louvain", "values": ["NK cells", "CD8 T cells"]},
{"name": "n_counts", "min": 3000},
],
"index": [1, 99, [1000, 2000]]
}
}
}
result = self.session.put(url, json=obs_filter)
self.assertEqual(result.status_code, HTTPStatus.OK)
result_data = result.json()
self.assertEqual(len(result_data["layout"]["coordinates"]), 15)
# def test_put_layout(self):
# endpoint = "layout/obs"
# url = f"{URL_BASE}{endpoint}"
# obs_filter = {
# "filter": {
# "obs": {
# "annotation_value": [
# {"name": "louvain", "values": ["NK cells", "CD8 T cells"]},
# {"name": "n_counts", "min": 3000},
# ],
# "index": [1, 99, [1000, 2000]]
# }
# }
# }
# result = self.session.put(url, json=obs_filter)
# self.assertEqual(result.status_code, HTTPStatus.OK)
# result_data = result.json()
# self.assertEqual(len(result_data["layout"]["coordinates"]), 15)
def test_bad_filter(self):
endpoints = ["layout/obs", "annotations/obs", "annotations/var", "data/obs", "data/var"]
endpoints = ["annotations/obs", "annotations/var", "data/obs", "data/var"]
for endpoint in endpoints:
url = f"{URL_BASE}{endpoint}"
result = self.session.put(url, json=BAD_FILTER)