fix(sec): name aged filings in deferred warnings
Deploy / lint (push) Successful in 10s
Deploy / test (push) Successful in 2m3s
Deploy / deploy (push) Successful in 42s

This commit is contained in:
2026-07-31 14:58:22 +02:00
parent c8c660e63d
commit 7bcdf77ef9
4 changed files with 96 additions and 17 deletions
+21 -1
View File
@@ -71,11 +71,13 @@ class FakeImporter:
def __init__(
self, revision, *, ok=True, retryable=False, alert_days=None,
n_rows=3, raise_in="none",
alert_messages=None,
):
self.revision = revision
self.ok = ok
self.retryable = retryable
self.alert_days = alert_days
self.alert_messages = alert_messages or []
self.n_rows = n_rows
self.raise_in = raise_in
self.staged_called = False
@@ -102,6 +104,7 @@ class FakeImporter:
messages=[] if self.ok else ["coverage below threshold"],
retryable=self.retryable,
deferred_alert_after_days=self.alert_days,
deferred_alert_messages=self.alert_messages,
)
async def promote(self, db, staged, run_id):
@@ -231,7 +234,9 @@ async def test_stale_deferred_validation_emits_deduplicated_warning(engine):
await s.commit()
importer = FakeImporter(
"rev2", ok=False, retryable=True, alert_days=3, n_rows=5
"rev2", ok=False, retryable=True, alert_days=3,
alert_messages=["source detail names OLD-ACCESSION"],
n_rows=5,
)
first = await run_import(importer, engine=engine)
second = await run_import(importer, engine=engine)
@@ -244,6 +249,21 @@ async def test_stale_deferred_validation_emits_deduplicated_warning(engine):
assert events[0].severity == "warning"
assert events[0].code == "sec_facts_deferred_stale"
assert "OLD-ACCESSION" in events[0].message
assert "aged-out" not in events[0].message
async def test_never_promoted_deferred_warning_says_never(engine):
factory = _factory(engine)
run = await run_import(
FakeImporter("rev1", ok=False, retryable=True, alert_days=3),
engine=engine,
)
assert run is not None and run.status == STATUS_DEFERRED
async with factory() as s:
event = (await s.execute(select(SystemEvent))).scalar_one()
assert "has never promoted successfully" in event.message
async def test_exception_in_promote_rolls_back(engine):
factory = _factory(engine)