Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions detectmatelibrary_tests/test_utils/test_persistency_saver.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
5 changes: 4 additions & 1 deletion src/detectmatelibrary/utils/persistency/persistency_saver.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading