from __future__ import annotations import unittest from govoplan_core.core.modules import ModuleManifest from govoplan_poll.backend.manifest import get_manifest class PollManifestTests(unittest.TestCase): def test_manifest_contract(self) -> None: manifest = get_manifest() self.assertIsInstance(manifest, ModuleManifest) self.assertEqual(manifest.id, "poll") self.assertNotIn("access", manifest.dependencies) self.assertIn("access", manifest.optional_dependencies) self.assertFalse(manifest.required_capabilities) self.assertIn("auth.principalResolver", manifest.optional_capabilities) self.assertIn("poll.availability_matrix", {interface.name for interface in manifest.provides_interfaces}) self.assertIn("poll:response:write", {permission.scope for permission in manifest.permissions}) if __name__ == "__main__": unittest.main()