from __future__ import annotations import unittest from govoplan_core.core.modules import ModuleManifest from govoplan_evaluation.backend.manifest import get_manifest class EvaluationManifestTests(unittest.TestCase): def test_manifest_contract(self) -> None: manifest = get_manifest() self.assertIsInstance(manifest, ModuleManifest) self.assertEqual(manifest.id, "evaluation") 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", manifest.optional_dependencies) self.assertIn("evaluation.result_aggregation", {interface.name for interface in manifest.provides_interfaces}) self.assertIn("poll.response_collection", {interface.name for interface in manifest.requires_interfaces}) if __name__ == "__main__": unittest.main()