From d7642645d4fd6e7c3f87495e44714bd19fc090ab Mon Sep 17 00:00:00 2001 From: Christopher Rhodes <christopher.rhodes@embl.de> Date: Thu, 24 Aug 2023 14:48:20 +0200 Subject: [PATCH] Ignore pycache files --- model_server/api.py => api.py | 9 +++------ tests/test_api.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) rename model_server/api.py => api.py (86%) create mode 100644 tests/test_api.py diff --git a/model_server/api.py b/api.py similarity index 86% rename from model_server/api.py rename to api.py index 47471e32..51208362 100644 --- a/model_server/api.py +++ b/api.py @@ -2,8 +2,8 @@ from pathlib import Path from fastapi import FastAPI, HTTPException -from session import Session -from workflow import infer_image_to_image +from model_server.session import Session +from model_server.workflow import infer_image_to_image app = FastAPI() session = Session() @@ -14,7 +14,7 @@ def startup(): @app.get('/') def read_root(): - return {'test': 'success'} + return {'success': True} @app.get('/models') def list_active_models(): @@ -27,9 +27,6 @@ def load_model(model_id: str, project_file: Path) -> Path: # does API autoencode status_code=409, detail=f'Model with id {model_id} has already been loaded' ) - # model = new_ilastik_shell - # session.models[model_id] = model - pass @app.post('/i2i/infer/{model_id}') # image file in, image file out def infer_img(model_id: str, imgf: str, channel: int = None) -> dict: diff --git a/tests/test_api.py b/tests/test_api.py new file mode 100644 index 00000000..2bdd2451 --- /dev/null +++ b/tests/test_api.py @@ -0,0 +1,27 @@ +from multiprocessing import Process +import requests +import unittest +import uvicorn + +class TestApiFromAutomatedClient(unittest.TestCase): + def setUp(self) -> None: + import uvicorn + host = '127.0.0.1' + port = 5000 + + self.server_process = Process( + target=uvicorn.run, + args=('api:app', ), + kwargs={'host': host, 'port': port, 'log_level': 'info'}, + daemon=True + ) + self.uri = f'http://{host}:{port}/' + self.server_process.start() + + def tearDown(self) -> None: + self.server_process.terminate() + + def test_trivial_api_response(self): + resp = requests.get(self.uri, ) + self.assertEqual(resp.status_code, 200) + -- GitLab