feat(event): add daily cleanup for delivered/dead-letter events

This commit is contained in:
2026-07-10 12:19:43 +08:00
parent c3aefc97de
commit 4b0780c181

View File

@@ -1,5 +1,6 @@
import os import os
import tempfile import tempfile
from datetime import datetime, timedelta, timezone
import pytest import pytest
@@ -40,3 +41,19 @@ def test_mark_delivered(store):
store.mark_delivered(event.event_id) store.mark_delivered(event.event_id)
pending = store.fetch_pending(limit=10) pending = store.fetch_pending(limit=10)
assert len(pending) == 0 assert len(pending) == 0
def test_cleanup_old_delivered_events(store):
old_event = OutboundEvent(EventType.HEARTBEAT, "bot-001", "rescue", {})
store.save(old_event)
store.mark_delivered(old_event.event_id)
# Modify created_at to be 11 days ago.
with store._connection() as conn:
conn.execute(
"UPDATE outbound_events SET created_at = ? WHERE id = ?",
(datetime.now(timezone.utc) - timedelta(days=11), old_event.event_id),
)
deleted = store.cleanup(10)
assert deleted == 1