diff --git a/jass/server.py b/jass/server.py index 66aa31e32cc2ae71ba0aff71391790efa972d3a5..44ee25f3bc72dd096885f08dd1991b2669361f4f 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 7172207031416a0b0b873062b50d798b51ddb5e6..024202f4c4d35470b0a22118e7300871197b47e1 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