diff --git a/senju/store_manager.py b/senju/store_manager.py index 4c30543..1cf3bc5 100644 --- a/senju/store_manager.py +++ b/senju/store_manager.py @@ -35,10 +35,12 @@ class StoreManager: def _save(self, data: dict) -> int: return self._db.insert(data) - def load_haiku(self, key: int) -> Optional[Haiku]: + def load_haiku(self, key: Optional[int]) -> Haiku: + if key is None: + return DEFAULT_HAIKU raw_haiku: dict | None = self._load(key) if raw_haiku is None: - return None + return DEFAULT_HAIKU h = Haiku(**raw_haiku) return h @@ -52,12 +54,3 @@ class StoreManager: except IndexError as e: self.logger.error(f"The database seems to be empty: {e}") return None - - def get_latest_haiku_or_default(self) -> Haiku: - id = self.get_id_of_latest_haiku() - if id is None: - return DEFAULT_HAIKU - haiku = self.load_haiku(id) - if haiku is None: - return DEFAULT_HAIKU - return haiku diff --git a/tests/test_store.py b/tests/test_store.py index d470cb8..35ac981 100644 --- a/tests/test_store.py +++ b/tests/test_store.py @@ -37,6 +37,7 @@ def test_save_and_load_haiku(store_manager: StoreManager): but should have" assert h == h_loaded + assert h != DEFAULT_HAIKU def test_load_latest_with_empty_store(temp_data_dir): @@ -47,7 +48,7 @@ def test_load_latest_with_empty_store(temp_data_dir): def test_load_latest_or_default_with_empty(temp_data_dir): store = StoreManager(temp_data_dir / "load_or_default_empty.json") - haiku = store.get_latest_haiku_or_default() + haiku = store.load_haiku(store.get_id_of_latest_haiku()) assert haiku == DEFAULT_HAIKU @@ -55,6 +56,6 @@ def test_load_latest_or_default_with_non_empty(temp_data_dir): store = StoreManager(temp_data_dir / "load_or_default_not_empty.json") nonsense_test_haiku = Haiku(["nonsense", "test", "haiku"]) store.save_haiku(nonsense_test_haiku) - haiku = store.get_latest_haiku_or_default() + haiku = store.load_haiku(store.get_id_of_latest_haiku()) assert haiku != DEFAULT_HAIKU assert haiku == nonsense_test_haiku