"""The alert ledger: what the manager remembers across a restart.""" import pytest from sqlalchemy import delete from sqlmodel import Session from fluksio.core.db import engine from fluksio.flow.alert_ledger import AlertLedger from fluksio.models import AlertSent @pytest.fixture(autouse=True) def _empty(db: Session): # noqa: ARG001 - the schema has to exist first with Session(engine) as session: session.exec(delete(AlertSent)) session.commit() yield def test_a_sent_alert_comes_back_and_old_ones_are_pruned(): ledger = AlertLedger() ledger.add("node_error:house.calc", 100.0, keep_since=0.0) ledger.add("node_health:house.mqtt", 5000.0, keep_since=1000.0) assert ledger.load(since=0.0) == [("node_health:house.mqtt", 5000.0)] assert ledger.load(since=6000.0) == []