From 45519743bd8fefff9b3af86090f9b583b5d7d07c Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Sun, 23 Mar 2025 13:58:06 +0100 Subject: [PATCH] feat: add useful error message for when the store manager cant be initialized Refs: OPS-83 --- senju/store_manager.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/senju/store_manager.py b/senju/store_manager.py index e99b98e..5dd87d6 100644 --- a/senju/store_manager.py +++ b/senju/store_manager.py @@ -12,13 +12,25 @@ from senju.haiku import Haiku DEFAULT_DB_PATH: Path = Path("/var/lib/senju.json") +class BadStoreManagerFileError(Exception): + def __init__(self, msg: str, * args: object) -> None: + self.msg = msg + super().__init__(*args) + + def __str__(self) -> str: + return f"Store file is corrupted: {self.msg}" + + class StoreManager: __slots__ = "_db", "logger" _db: TinyDB logger: Logger def __init__(self, path_to_db: Path = DEFAULT_DB_PATH) -> None: - self._db = TinyDB(path_to_db) + try: + self._db = TinyDB(path_to_db) + except Exception as e: + raise BadStoreManagerFileError(f"{e}") self.logger = Logger(__name__) def _query(self, query: QueryImpl) -> list[dict]: