diff --git a/detectmatelibrary_tests/test_utils/test_persistency_saver.py b/detectmatelibrary_tests/test_utils/test_persistency_saver.py index f8aad6c7..c3df1448 100644 --- a/detectmatelibrary_tests/test_utils/test_persistency_saver.py +++ b/detectmatelibrary_tests/test_utils/test_persistency_saver.py @@ -223,6 +223,15 @@ def test_auto_load_on_init(self): PersistencySaver(p2, PersistencySaverConfig(path="memory://autoload/state", auto_load=True)) assert "E1" in p2.get_events_seen() + def test_auto_load_on_init_no_state_starts_fresh(self): + # auto_load=True with no prior save must not crash but starts with empty state + p = EventPersistency(event_data_class=EventDataFrame) + cfg = PersistencySaverConfig(path="memory://autoload_no_prior_state/state", auto_load=True) + saver = PersistencySaver(p, cfg) + assert len(p.get_events_seen()) == 0 + assert len(p.get_events_data()) == 0 + assert saver is not None + class TestPersistencySaverIntegration: def test_full_cycle_dataframe_backend(self): diff --git a/src/detectmatelibrary/utils/persistency/persistency_saver.py b/src/detectmatelibrary/utils/persistency/persistency_saver.py index 13db6e16..ff603c62 100644 --- a/src/detectmatelibrary/utils/persistency/persistency_saver.py +++ b/src/detectmatelibrary/utils/persistency/persistency_saver.py @@ -87,7 +87,10 @@ def __init__(self, persistency: EventPersistency, config: PersistencySaverConfig persistency.register_on_ingest(self._check_event_count) if config.auto_load: - self.load() + try: + self.load() + except PersistencyLoadError as e: + logger.info(f"PersistencySaver: auto_load enabled but no state found, start fresh.({e})") def save(self) -> None: """Write full EventPersistency state to storage.