Fix quality metric persistence ordering
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-17 00:36:35 +02:00
parent be7705f6c5
commit 12c370edd4
2 changed files with 7 additions and 0 deletions
+2
View File
@@ -39,6 +39,8 @@ class QualityService:
completed_at=datetime.now(timezone.utc), completed_at=datetime.now(timezone.utc),
) )
db.add(quality_check) db.add(quality_check)
if hasattr(db, "flush"):
db.flush()
for key, value in (metrics or {}).items(): for key, value in (metrics or {}).items():
db.add( db.add(
@@ -21,6 +21,7 @@ class FakeSession:
self.objects = objects or {} self.objects = objects or {}
self.commits = 0 self.commits = 0
self.refreshes = [] self.refreshes = []
self.flushes = 0
def get(self, model, item_id): def get(self, model, item_id):
return self.objects.get((model, item_id)) return self.objects.get((model, item_id))
@@ -31,6 +32,9 @@ class FakeSession:
def commit(self) -> None: def commit(self) -> None:
self.commits += 1 self.commits += 1
def flush(self) -> None:
self.flushes += 1
def refresh(self, item) -> None: def refresh(self, item) -> None:
self.refreshes.append(item) self.refreshes.append(item)
@@ -178,6 +182,7 @@ def test_quality_service_persists_quality_check_and_metrics() -> None:
"false_positive_count", "false_positive_count",
] ]
assert persisted_metrics[0].quality_check_id == quality_check.id assert persisted_metrics[0].quality_check_id == quality_check.id
assert db.flushes == 1
assert db.commits == 1 assert db.commits == 1