mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-08 00:38:11 +08:00
allow cellxgene datasets urls to have a trailing slash or not. (#2028)
#550
This commit is contained in:
+7
-1
@@ -420,11 +420,17 @@ class Server:
|
|||||||
self.app.register_blueprint(dataroot_resources.blueprint)
|
self.app.register_blueprint(dataroot_resources.blueprint)
|
||||||
|
|
||||||
self.app.add_url_rule(
|
self.app.add_url_rule(
|
||||||
f"/{url_dataroot}/<dataset>/",
|
f"/{url_dataroot}/<dataset>",
|
||||||
f"dataset_index_{url_dataroot}",
|
f"dataset_index_{url_dataroot}",
|
||||||
lambda dataset, url_dataroot=url_dataroot: dataset_index(url_dataroot, dataset),
|
lambda dataset, url_dataroot=url_dataroot: dataset_index(url_dataroot, dataset),
|
||||||
methods=["GET"],
|
methods=["GET"],
|
||||||
)
|
)
|
||||||
|
self.app.add_url_rule(
|
||||||
|
f"/{url_dataroot}/<dataset>/",
|
||||||
|
f"dataset_index_{url_dataroot}/",
|
||||||
|
lambda dataset, url_dataroot=url_dataroot: dataset_index(url_dataroot, dataset),
|
||||||
|
methods=["GET"],
|
||||||
|
)
|
||||||
self.app.add_url_rule(
|
self.app.add_url_rule(
|
||||||
f"/{url_dataroot}/<dataset>/static/<path:filename>",
|
f"/{url_dataroot}/<dataset>/static/<path:filename>",
|
||||||
f"static_assets_{url_dataroot}",
|
f"static_assets_{url_dataroot}",
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class AuthTest(unittest.TestCase):
|
|||||||
r = session.get(f"{server}/{login_uri}")
|
r = session.get(f"{server}/{login_uri}")
|
||||||
# check that the login redirect worked
|
# check that the login redirect worked
|
||||||
self.assertEqual(r.history[0].status_code, 302)
|
self.assertEqual(r.history[0].status_code, 302)
|
||||||
self.assertEqual(r.url, f"{server}/auth/pbmc3k.cxg/")
|
self.assertEqual(r.url, f"{server}/auth/pbmc3k.cxg")
|
||||||
|
|
||||||
config = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/config").json()
|
config = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/config").json()
|
||||||
userinfo = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/userinfo").json()
|
userinfo = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/userinfo").json()
|
||||||
@@ -91,7 +91,7 @@ class AuthTest(unittest.TestCase):
|
|||||||
r = session.get(f"{server}/{logout_uri}")
|
r = session.get(f"{server}/{logout_uri}")
|
||||||
# check that the logout redirect worked
|
# check that the logout redirect worked
|
||||||
self.assertEqual(r.history[0].status_code, 302)
|
self.assertEqual(r.history[0].status_code, 302)
|
||||||
self.assertEqual(r.url, f"{server}/auth/pbmc3k.cxg/")
|
self.assertEqual(r.url, f"{server}/auth/pbmc3k.cxg")
|
||||||
config = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/config").json()
|
config = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/config").json()
|
||||||
userinfo = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/userinfo").json()
|
userinfo = session.get(f"{server}/auth/pbmc3k.cxg/api/v0.2/userinfo").json()
|
||||||
self.assertFalse(userinfo["userinfo"]["is_authenticated"])
|
self.assertFalse(userinfo["userinfo"]["is_authenticated"])
|
||||||
|
|||||||
@@ -278,6 +278,14 @@ class TestServerConfig(ConfigTests):
|
|||||||
response = session.get(f"{server}/health")
|
response = session.get(f"{server}/health")
|
||||||
assert response.json()["status"] == "pass"
|
assert response.json()["status"] == "pass"
|
||||||
|
|
||||||
|
# access a dataset (no slash)
|
||||||
|
response = session.get(f"{server}/set2/pbmc3k.cxg")
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
|
# access a dataset (with slash)
|
||||||
|
response = session.get(f"{server}/set2/pbmc3k.cxg/")
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
|
||||||
@patch("server.common.config.server_config.diffexp_tiledb.set_config")
|
@patch("server.common.config.server_config.diffexp_tiledb.set_config")
|
||||||
def test_handle_diffexp(self, mock_tiledb_config):
|
def test_handle_diffexp(self, mock_tiledb_config):
|
||||||
custom_config_file = self.custom_app_config(
|
custom_config_file = self.custom_app_config(
|
||||||
|
|||||||
Reference in New Issue
Block a user