From 214c4a1cfd5d3670c8ae84f4965481a35e56556c Mon Sep 17 00:00:00 2001 From: Christopher Rhodes <christopher.rhodes@embl.de> Date: Tue, 31 Oct 2023 11:31:25 +0100 Subject: [PATCH] Added setter to change one a session's data paths --- model_server/session.py | 10 ++++++++++ tests/test_session.py | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/model_server/session.py b/model_server/session.py index 3d5db0bc..15ee33f4 100644 --- a/model_server/session.py +++ b/model_server/session.py @@ -36,6 +36,13 @@ class Session(object): def get_paths(self): return self.paths + def set_data_directory(self, key: str, path: Path): + if not key in self.paths.keys(): + raise InvalidPathError(f'No such path {key}') + if not Path(path).exists(): + raise InvalidPathError(f'Could not find {path}') + self.paths[key] = path + @staticmethod def make_paths(root: str = None) -> dict: """ @@ -143,4 +150,7 @@ class CouldNotInstantiateModelError(Error): pass class CouldNotCreateDirectory(Error): + pass + +class InvalidPathError(Error): pass \ No newline at end of file diff --git a/tests/test_session.py b/tests/test_session.py index fd4b79c9..dee15d0e 100644 --- a/tests/test_session.py +++ b/tests/test_session.py @@ -28,6 +28,13 @@ class TestGetSessionObject(unittest.TestCase): rmtree(newroot) self.assertFalse(newroot.exists(), 'Could not clean up temporary test subdirectory') + def test_change_session_subdirectory(self): + sesh = Session() + old_paths = sesh.get_paths() + print(old_paths) + sesh.set_data_directory('outbound_images', old_paths['inbound_images']) + self.assertEqual(sesh.paths['outbound_images'], sesh.paths['inbound_images']) + def test_restart_session(self): sesh = Session() -- GitLab