from __future__ import annotations import unittest from govoplan_core.core.modules import ( documentation_structured_translation_issues, localizable_documentation_metadata_keys, ) from govoplan_committee.backend.manifest import manifest class CommitteeDocumentationTests(unittest.TestCase): def test_german_reference_documentation_is_complete(self) -> None: topics = manifest.documentation by_id = {topic.id: topic for topic in topics} self.assertEqual(len(topics), len(by_id), "Documentation topic IDs must be unique") self.assertLessEqual( { "committee.module-boundary", "committee.reference.fields-and-consequences", "committee.data-subject-requests", "committee.workspace-layout", }, set(by_id), ) self.assertLessEqual( {"user", "admin"}, set(by_id["committee.workspace-layout"].documentation_types), ) for topic in topics: translation = topic.translations.get("de", {}) self.assertTrue(translation.get("title"), topic.id) self.assertTrue(translation.get("summary"), topic.id) self.assertTrue(translation.get("body"), topic.id) if localizable_documentation_metadata_keys(topic): self.assertEqual("1", topic.structured_translation_version, topic.id) self.assertIn("de", topic.structured_translations, topic.id) self.assertEqual((), documentation_structured_translation_issues(topic)) kinds = {topic.metadata.get("kind") for topic in topics} self.assertIn("workflow", kinds) self.assertIn("reference", kinds) workflow = next(topic for topic in topics if topic.metadata.get("kind") == "workflow") self.assertTrue(workflow.conditions) if __name__ == "__main__": unittest.main()