Files
govoplan-rest/tests/test_rest_module_contract.py
T
zemion 570cf256fe
Module Package Release / publish-packages (push) Successful in 10s
docs(rest): add German reference coverage
2026-08-22 06:21:50 +02:00

49 lines
1.6 KiB
Python

from __future__ import annotations
import unittest
from govoplan_core.core.modules import ModuleContext
from govoplan_rest.backend.contracts import RestFunctionDescriptor
from govoplan_rest.backend.manifest import get_manifest
class RestModuleContractTests(unittest.TestCase):
def test_manifest_declares_rest_module(self) -> None:
manifest = get_manifest()
self.assertEqual("rest", manifest.id)
self.assertTrue(manifest.route_factory)
self.assertEqual(("auth.principalResolver", "auth.permissionEvaluator"), manifest.required_capabilities)
def test_route_factory_exports_status_router(self) -> None:
manifest = get_manifest()
router = manifest.route_factory(ModuleContext(registry=object(), settings=object()))
self.assertEqual("/rest", router.prefix)
self.assertEqual(1, len(router.routes))
def test_public_reference_has_complete_german_localization(self) -> None:
topic = get_manifest().documentation[0]
translation = topic.translations["de"]
self.assertEqual({"title", "summary", "body"}, set(translation))
self.assertTrue(all(str(translation[field]).strip() for field in translation))
def test_function_descriptor_is_stable(self) -> None:
descriptor = RestFunctionDescriptor(
id="demo.ping",
module_id="demo",
name="Ping",
summary="Demo function",
)
self.assertEqual("POST", descriptor.method)
self.assertEqual("authenticated", descriptor.visibility)
self.assertEqual((), descriptor.required_scopes)
if __name__ == "__main__":
unittest.main()