From cf1a04b31534aa8f7c47dd501cb85c5c1804ee63 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Mon, 30 Oct 2023 18:22:05 +0100 Subject: [PATCH] list available initTable --- jass/server.py | 8 ++++++++ jass/test/test_server.py | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/jass/server.py b/jass/server.py index 66aa31e3..44ee25f3 100644 --- a/jass/server.py +++ b/jass/server.py @@ -52,6 +52,14 @@ async def read_index(): return RedirectResponse(url="/webui/") +@app.get("/api/tables", response_model=List[str]) +def inittable_list(): + """List initTables""" + for filename in os.listdir( config["DATA_DIR"] ): + if filename.endswith(".hdf5") and "worktable" not in filename: + yield filename + + @app.post("/api/phenotypes", response_model=List[Phenotype]) def phenotypes_list(init_table_name: InitTableNameModel): """List phenotypes""" diff --git a/jass/test/test_server.py b/jass/test/test_server.py index 71722070..024202f4 100644 --- a/jass/test/test_server.py +++ b/jass/test/test_server.py @@ -70,6 +70,12 @@ class TestDefaultController(JassWebClientTestCase): self.assertNotEqual(respT1, respMain) self.assertSetEqual(set(respMain.keys()), {'nb_phenotypes', 'nb_snps', 'name', 'desc'}) + def test_get_tables(self): + response = self.testing_client.get("/api/tables") + self.assert200(response, "Response body is : " + response.content.decode("utf-8")) + resp = json.loads(response.content.decode("utf-8")) + self.assertSetEqual({"initTable.hdf5", "initTableTest1.hdf5"}, set(resp)) + if __name__ == "__main__": import unittest -- GitLab