feat: honor temporal read context

This commit is contained in:
2026-08-05 00:03:32 +02:00
parent bc98372d93
commit 10ea54f38d
4 changed files with 56 additions and 10 deletions
+37 -1
View File
@@ -15,8 +15,18 @@ from govoplan_core.core.institutional import (
ProcedureParty,
TemporalRevision,
)
from govoplan_core.core.temporal import (
TemporalDataContext,
bind_temporal_data_context,
reset_temporal_data_context,
)
from govoplan_parties.backend.db.models import ProcedurePartyRevision
from govoplan_parties.backend.service import PartyStoreError, SqlPartyResolver, record_procedure_party
from govoplan_parties.backend.service import (
PartyStoreError,
SqlPartyResolver,
get_procedure_party,
record_procedure_party,
)
NOW = datetime(2026, 8, 1, 11, 0, tzinfo=UTC)
@@ -87,6 +97,32 @@ class PartyTests(unittest.TestCase):
with self.assertRaisesRegex(Exception, "same-tenant"):
SqlPartyResolver().list_procedure_parties(self.session, Principal("tenant-2"), procedure_ref=ref("case", "case-1", "cases"))
def test_read_context_can_reconstruct_recorded_state(self) -> None:
record_procedure_party(self.session, self.principal, party=party())
revoked = representation(revision="2", revoked_at=NOW + timedelta(hours=1))
record_procedure_party(
self.session,
self.principal,
party=party(revision="2", representations=(revoked,)),
expected_revision="1",
)
token = bind_temporal_data_context(
TemporalDataContext(
validity_mode="at",
valid_at=NOW + timedelta(hours=1),
recorded_at=NOW + timedelta(seconds=30),
)
)
try:
result = get_procedure_party(
self.session,
self.principal,
party_id="representative",
)
self.assertEqual("1", result.temporal.revision if result else None)
finally:
reset_temporal_data_context(token)
if __name__ == "__main__":
unittest.main()