from __future__ import annotations import unittest from govoplan_workflow.backend.manifest import ( DEFINITION_READ_SCOPE, DEFINITION_WRITE_SCOPE, get_manifest, ) class WorkflowManifestTests(unittest.TestCase): def test_manifest_exposes_definition_contracts(self) -> None: manifest = get_manifest() self.assertEqual(manifest.id, "workflow") self.assertIn( "workflow.definition_graph", {item.name for item in manifest.provides_interfaces}, ) self.assertIn( DEFINITION_READ_SCOPE, {item.scope for item in manifest.permissions}, ) self.assertIn( DEFINITION_WRITE_SCOPE, {item.scope for item in manifest.permissions}, ) if __name__ == "__main__": unittest.main()