Add distribution audience contracts and module wiring

This commit is contained in:
2026-07-31 20:59:49 +02:00
parent 6ebb299d6c
commit 4cb334c912
8 changed files with 548 additions and 4 deletions
+41
View File
@@ -0,0 +1,41 @@
from __future__ import annotations
import unittest
from govoplan_core.core.distribution_lists import (
CAPABILITY_DISTRIBUTION_LIST_EXPAND,
DistributionExpansionLimits,
DistributionExpansionRequest,
DistributionListEntryRef,
DistributionSourceReference,
)
class DistributionListContractTests(unittest.TestCase):
def test_mixed_entry_and_bounded_request_are_provider_neutral(self) -> None:
source = DistributionSourceReference(
provider="addresses",
resource_type="address_list",
resource_id="list-1",
revision="4",
fingerprint="sha256:abc",
)
entry = DistributionListEntryRef(
id="entry-1",
kind="address_list",
mode="include",
source=source,
requested_channels=("email",),
)
request = DistributionExpansionRequest(
list_id="distribution-1",
limits=DistributionExpansionLimits(max_results=25),
)
self.assertEqual("address_list", entry.kind)
self.assertEqual(25, request.limits.max_results)
self.assertEqual("dist_lists.expand", CAPABILITY_DISTRIBUTION_LIST_EXPAND)
if __name__ == "__main__":
unittest.main()