from __future__ import annotations import unittest from govoplan_core.core.modules import ModuleManifest from govoplan_dist_lists.backend.manifest import get_manifest class DistributionListsManifestTests(unittest.TestCase): def test_manifest_contract(self) -> None: manifest = get_manifest() self.assertIsInstance(manifest, ModuleManifest) self.assertEqual(manifest.id, "dist_lists") self.assertFalse(manifest.dependencies) self.assertIn("addresses", manifest.optional_dependencies) self.assertIn("auth.principalResolver", manifest.optional_capabilities) self.assertIn("distLists.expand", {interface.name for interface in manifest.provides_interfaces}) self.assertIn("dist_lists:list:read", {permission.scope for permission in manifest.permissions}) self.assertIsNone(manifest.route_factory) self.assertIsNone(manifest.migration_spec) if __name__ == "__main__": unittest.main()