diff --git a/model_server/base/session.py b/model_server/base/session.py index 7e06003f8be9407f6a8ee4f1816b70fac12f1900..8f25520d9dca34ca143337327bb14c74dc197ea3 100644 --- a/model_server/base/session.py +++ b/model_server/base/session.py @@ -40,7 +40,7 @@ class _Session(object): def __init__(self, root: str = None): self.models = {} # model_id : model object - self.paths = self.make_paths(root) + self.paths = self.make_paths(root) # TODO: optionally set this in startup script self.accessors = OrderedDict() self.logfile = self.paths['logs'] / f'session.log' diff --git a/model_server/conf/testing.py b/model_server/conf/testing.py index 10a2eafbb03f87fd00d305b47c12e1b67a79e92d..b176f9e196b8d7aa652a199f4e03290fca84e55b 100644 --- a/model_server/conf/testing.py +++ b/model_server/conf/testing.py @@ -96,7 +96,7 @@ class TestServerBaseClass(unittest.TestCase): def assertGetFailure(self, endpoint, code): resp = self._get_sesh().get(self.uri + endpoint) - self.asserEqual(resp.status_code, code) + self.assertEqual(resp.status_code, code) return resp def assertPutSuccess(self, endpoint, query=None, body=None): @@ -133,7 +133,7 @@ class TestServerBaseClass(unittest.TestCase): def get_accessor(self, accessor_id, filename=None): r = self.assertPutSuccess(f'/accessors/write_to_file/{accessor_id}', query={'filename': filename}) - where_out = self.assertGetSuccess('paths').json()['outbound_images'] + where_out = self.assertGetSuccess('paths')['outbound_images'] fp_out = (Path(where_out) / r) self.assertTrue(fp_out.exists()) return generate_file_accessor(fp_out) diff --git a/tests/base/test_api.py b/tests/base/test_api.py index 0698d701b6c37018b54c9724b00404b6568cc0ee..73a361880f3cb20fe0871c2374496cb83efb909d 100644 --- a/tests/base/test_api.py +++ b/tests/base/test_api.py @@ -27,11 +27,9 @@ class TestApiFromAutomatedClient(TestServerBaseClass): suffix = Path(model_server.conf.defaults.subdirectories[p]).__str__() self.assertTrue(r[p].endswith(suffix)) - # TODO: was this even passing before? def test_list_empty_loaded_models(self): r = self.assertGetSuccess('models') - # self.assertEqual(resp.status_code, 200) - self.assertEqual(r, b'{}') + self.assertEqual(r, {}) def test_load_dummy_semantic_model(self): mid = self.assertPutSuccess(f'testing/models/dummy_semantic/load')['model_id'] @@ -74,7 +72,6 @@ class TestApiFromAutomatedClient(TestServerBaseClass): body={'model_id': 'fake', 'accessor_id': in_acc_id} ) - # TODO: this errors because it's overwriting, seems maybe session isn't refreshing each time def test_i2i_dummy_inference_by_api(self): fname = self.copy_input_file_to_server() model_id = self.assertPutSuccess(f'testing/models/dummy_semantic/load')['model_id'] @@ -129,64 +126,60 @@ class TestApiFromAutomatedClient(TestServerBaseClass): self.assertEqual(r_inpath['outbound_images'], r_check['outbound_images']) def test_no_change_inbound_path(self): - resp_inpath = self.assertGetSuccess('paths') - resp_change = self.assertPutSuccess( + r_inpath = self.assertGetSuccess('paths') + r_change = self.assertPutSuccess( f'paths/watch_output', - query={'path': resp_inpath.json()['outbound_images']} + query={'path': r_inpath['outbound_images']} ) - self.assertEqual(resp_change.status_code, 200) - resp_check = self.assertGetSuccess('paths') - self.assertEqual(resp_inpath.json()['outbound_images'], resp_check.json()['outbound_images']) + r_check = self.assertGetSuccess('paths') + self.assertEqual(r_inpath['outbound_images'], r_check['outbound_images']) def test_get_logs(self): - resp = self.assertGetSuccess('session/logs') - self.assertEqual(resp.status_code, 200) - self.assertEqual(resp.json()[0]['message'], 'Initialized session') + r = self.assertGetSuccess('session/logs') + self.assertEqual(r[0]['message'], 'Initialized session') def test_add_and_delete_accessor(self): fname = self.copy_input_file_to_server() # add accessor to session - resp_add_acc = self.assertPutSuccess( + acc_id = self.assertPutSuccess( f'accessors/read_from_file/{fname}', ) - acc_id = resp_add_acc.json() self.assertTrue(acc_id.startswith('auto_')) # confirm that accessor is listed in session context - resp_list_acc = self.assertGetSuccess( + acc_list = self.assertGetSuccess( f'accessors', ) - self.assertEqual(len(resp_list_acc.json()), 1) - self.assertTrue(list(resp_list_acc.json().keys())[0].startswith('auto_')) - self.assertTrue(resp_list_acc.json()[acc_id]['loaded']) + self.assertEqual(len(acc_list), 1) + self.assertTrue(list(acc_list.keys())[0].startswith('auto_')) + self.assertTrue(acc_list[acc_id]['loaded']) # delete and check that its 'loaded' state changes - self.assertTrue(self.assertGetSuccess(f'accessors/{acc_id}').json()['loaded']) - self.assertEqual(self.assertGetSuccess(f'accessors/delete/{acc_id}').json(), acc_id) - self.assertFalse(self.assertGetSuccess(f'accessors/{acc_id}').json()['loaded']) + self.assertTrue(self.assertGetSuccess(f'accessors/{acc_id}')['loaded']) + self.assertEqual(self.assertGetSuccess(f'accessors/delete/{acc_id}'), acc_id) + self.assertFalse(self.assertGetSuccess(f'accessors/{acc_id}')['loaded']) # and try a non-existent accessor ID - resp_wrong_acc = self.assertGetSuccess('accessors/auto_123456') - self.assertEqual(resp_wrong_acc.status_code, 404) + self.assertGetFailure('accessors/auto_123456', 404) # load another... then remove all self.assertPutSuccess(f'accessors/read_from_file/{fname}') - self.assertEqual(sum([v['loaded'] for v in self.assertGetSuccess('accessors').json().values()]), 1) - self.assertEqual(len(self.assertGetSuccess(f'accessors/delete/*').json()), 1) - self.assertEqual(sum([v['loaded'] for v in self.assertGetSuccess('accessors').json().values()]), 0) + self.assertEqual(sum([v['loaded'] for v in self.assertGetSuccess('accessors').values()]), 1) + self.assertEqual(len(self.assertGetSuccess(f'accessors/delete/*')), 1) + self.assertEqual(sum([v['loaded'] for v in self.assertGetSuccess('accessors').values()]), 0) def test_empty_accessor_list(self): - resp_list_acc = self.assertGetSuccess( + r_list = self.assertGetSuccess( f'accessors', ) - self.assertEqual(len(resp_list_acc.json()), 0) + self.assertEqual(len(r_list), 0) def test_write_accessor(self): - acc_id = self.assertPutSuccess('/testing/accessors/dummy_accessor/load').json() - self.assertTrue(self.assertGetSuccess(f'accessors/{acc_id}').json()['loaded']) - sd = self.assertGetSuccess(f'accessors/{acc_id}').json()['shape_dict'] - self.assertEqual(self.assertGetSuccess(f'accessors/{acc_id}').json()['filepath'], '') + acc_id = self.assertPutSuccess('/testing/accessors/dummy_accessor/load') + self.assertTrue(self.assertGetSuccess(f'accessors/{acc_id}')['loaded']) + sd = self.assertGetSuccess(f'accessors/{acc_id}')['shape_dict'] + self.assertEqual(self.assertGetSuccess(f'accessors/{acc_id}')['filepath'], '') acc_out = self.get_accessor(accessor_id=acc_id, filename='test_output.tif') self.assertEqual(sd, acc_out.shape_dict) \ No newline at end of file