feat: implement assurance graph and screening evidence

This commit is contained in:
2026-08-01 17:48:39 +02:00
parent bbf7288e14
commit a23b53dc9e
18 changed files with 4005 additions and 42 deletions
+28 -1
View File
@@ -22,6 +22,8 @@ from govoplan_core.core.sanctions import (
)
from govoplan_core.db.base import Base, utcnow
from govoplan_risk_compliance.backend.db.models import (
RiskAssuranceEdge,
RiskAssuranceNode,
RiskSanctionsAddress,
RiskSanctionsAlias,
RiskSanctionsDate,
@@ -104,6 +106,8 @@ UN_XML = b"""<?xml version="1.0" encoding="UTF-8"?>
"""
TABLES = (
RiskAssuranceNode.__table__,
RiskAssuranceEdge.__table__,
RiskSanctionsListSnapshot.__table__,
RiskSanctionsEntry.__table__,
RiskSanctionsAlias.__table__,
@@ -254,6 +258,27 @@ class SanctionsScreeningTests(unittest.TestCase):
self.assertFalse(
item.candidates[0].evidence[0]["auto_confirmed"]
)
self.assertEqual(
6,
self.session.query(RiskAssuranceNode)
.filter(
RiskAssuranceNode.tenant_id == "tenant-1",
RiskAssuranceNode.superseded_at.is_(None),
)
.count(),
)
self.assertEqual(
5,
self.session.query(RiskAssuranceEdge)
.filter(
RiskAssuranceEdge.tenant_id == "tenant-1",
RiskAssuranceEdge.superseded_at.is_(None),
)
.count(),
)
item_id = item.id
self.session.commit()
self.session.expire_all()
replay, replay_created = run_screening(
self.session,
@@ -266,7 +291,9 @@ class SanctionsScreeningTests(unittest.TestCase):
),
)
self.assertFalse(replay_created)
self.assertEqual(item.id, replay.id)
self.assertEqual(item_id, replay.id)
self.assertEqual(6, self.session.query(RiskAssuranceNode).count())
self.assertEqual(5, self.session.query(RiskAssuranceEdge).count())
with self.assertRaises(RiskSanctionsConflictError):
run_screening(