Various hardening to REST routes (#1293)

* URL reweriting for static

* request size limits

* improve quotas, make tests work

* remove debugging code

* pass limits to front-end

* fix renaming boggle
This commit is contained in:
Bruce Martin
2020-03-25 16:14:52 -07:00
committed by GitHub
parent 7b53209ae3
commit 26605049a4
11 changed files with 107 additions and 20 deletions
+2
View File
@@ -44,6 +44,8 @@ class AdaptorTest(unittest.TestCase):
}
config = AppConfig()
config.update(**args)
for k in config.limits.keys():
config.limits[k] = None
config.complete_config()
self.data = AnndataAdaptor(DataLocator(self.data_locator), config)
+5 -10
View File
@@ -193,7 +193,10 @@ class EndPoints(object):
endpoint = f"data/var"
url = f"{self.URL_BASE}{endpoint}"
result = self.session.put(url)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual(result.status_code, HTTPStatus.BAD_REQUEST)
filter = {"filter": {"var": {"index": [0, 1, 4]}}}
result = self.session.put(url, json=filter)
self.assertEqual(result.headers["Content-Type"], "application/octet-stream")
def test_data_put_fbs(self):
@@ -201,15 +204,7 @@ class EndPoints(object):
url = f"{self.URL_BASE}{endpoint}"
header = {"Accept": "application/octet-stream"}
result = self.session.put(url, headers=header)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual(result.headers["Content-Type"], "application/octet-stream")
df = decode_fbs.decode_matrix_FBS(result.content)
self.assertEqual(df["n_rows"], 2638)
self.assertEqual(df["n_cols"], 1838)
self.assertIsNotNone(df["columns"])
self.assertListEqual(df["col_idx"].tolist(), [])
self.assertIsNone(df["row_idx"])
self.assertEqual(len(df["columns"]), df["n_cols"])
self.assertEqual(result.status_code, HTTPStatus.BAD_REQUEST)
def test_data_put_filter_fbs(self):
endpoint = f"data/var"
+2
View File
@@ -24,6 +24,8 @@ class NaNTest(unittest.TestCase):
config.update(**self.args)
locator = DataLocator("test/test_datasets/nan.h5ad")
config.update(single_dataset__datapath=locator.path)
for k in config.limits.keys():
config.limits[k] = None
config.complete_config()
with warnings.catch_warnings():
+2 -1
View File
@@ -47,7 +47,8 @@ class WithNaNs(unittest.TestCase):
def test_data(self):
endpoint = "data/var"
url = f"{URL_BASE}{endpoint}"
result = self.session.put(url)
filter = {"filter": {"var": {"index": [[0, 20]]}}}
result = self.session.put(url, json=filter)
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual(result.headers["Content-Type"], "application/octet-stream")
df = decode_fbs.decode_matrix_FBS(result.content)