from __future__ import annotations import unittest from govoplan_tenancy.backend.manifest import manifest class TenancyInterfaceDocumentationContractTests(unittest.TestCase): def test_tenancy_admin_surfaces_remain_declared(self) -> None: frontend = manifest.frontend self.assertIsNotNone(frontend) surfaces = {surface.id for surface in frontend.view_surfaces} # type: ignore[union-attr] self.assertEqual( { "tenancy.admin.system-tenants", "tenancy.admin.tenant-settings", }, surfaces, ) def test_tenancy_topics_publish_stable_help_contexts(self) -> None: topics = {topic.id: topic for topic in manifest.documentation} self.assertIn("tenancy.current-context", topics) self.assertIn("tenancy.lifecycle-and-settings", topics) self.assertIn("tenancy.reference.admin-fields", topics) lifecycle_contexts = set(topics["tenancy.lifecycle-and-settings"].metadata["help_contexts"]) self.assertIn("tenancy.admin.system-tenants", lifecycle_contexts) self.assertIn("tenancy.admin.tenant-settings", lifecycle_contexts) self.assertIn("tenancy.action.suspend", topics["tenancy.reference.admin-fields"].metadata["help_contexts"]) if __name__ == "__main__": unittest.main()