feat: harden shared platform contracts

This commit is contained in:
2026-07-30 14:26:36 +02:00
parent 6970bf7457
commit 9b88ae388b
24 changed files with 2034 additions and 57 deletions

View File

@@ -1,6 +1,7 @@
from __future__ import annotations
import unittest
from datetime import datetime, timezone
from govoplan_core.core.modules import ModuleContext, ModuleManifest
from govoplan_core.core.postbox import (
@@ -11,6 +12,7 @@ from govoplan_core.core.postbox import (
CAPABILITY_POSTBOX_MESSAGES,
PostboxAccessProvider,
PostboxDeliveryProvider,
PostboxDeliveryReceiptSummaryRef,
PostboxDirectoryProvider,
PostboxEvidenceProvider,
PostboxMessagesProvider,
@@ -69,6 +71,17 @@ class _PostboxProvider:
del session, tenant_id, message_id, attachment
return None
def delivery_receipt_summaries(
self,
session,
*,
tenant_id,
producer_module,
delivery_ids,
):
del session, tenant_id, producer_module, delivery_ids
return {}
class PostboxContractTests(unittest.TestCase):
def test_protocols_and_registry_helpers_resolve_without_module_imports(self) -> None:
@@ -78,6 +91,16 @@ class PostboxContractTests(unittest.TestCase):
self.assertIsInstance(provider, PostboxMessagesProvider)
self.assertIsInstance(provider, PostboxDeliveryProvider)
self.assertIsInstance(provider, PostboxEvidenceProvider)
self.assertEqual(
"delivery-1",
PostboxDeliveryReceiptSummaryRef(
delivery_id="delivery-1",
message_id="message-1",
postbox_id="postbox-1",
delivery_status="accepted",
accepted_at=datetime.now(timezone.utc),
).delivery_id,
)
registry = PlatformRegistry()
registry.register(