from __future__ import annotations import importlib.util import pathlib import sys import tempfile import unittest ROOT = pathlib.Path(__file__).resolve().parents[1] SCRIPT = ROOT / "tools" / "gitea" / "gitea-sync-wiki.py" TOOLS = SCRIPT.parent if str(TOOLS) not in sys.path: sys.path.insert(0, str(TOOLS)) SPEC = importlib.util.spec_from_file_location("gitea_sync_wiki", SCRIPT) assert SPEC and SPEC.loader wiki_sync = importlib.util.module_from_spec(SPEC) sys.modules[SPEC.name] = wiki_sync SPEC.loader.exec_module(wiki_sync) class WikiSourceDiscoveryTests(unittest.TestCase): def test_generated_and_incidental_govoplan_files_are_not_docs(self) -> None: with tempfile.TemporaryDirectory() as temporary: root = pathlib.Path(temporary) paths = { "readme": root / "README.md", "architecture": root / "docs" / "DATASOURCE_ARCHITECTURE.md", "plan": root / "workflow-plan.md", "audit": root / "audit-reports" / "full" / "manifest.json", "runtime": root / "runtime" / "release" / "manifest.json", "incidental": root / "tools" / "semgrep" / "govoplan.yml", "manifest": root / "manifest.json", } for path in paths.values(): path.parent.mkdir(parents=True, exist_ok=True) path.write_text("content\n", encoding="utf-8") self.assertTrue(wiki_sync.is_repo_doc(root, paths["readme"])) self.assertTrue(wiki_sync.is_repo_doc(root, paths["architecture"])) self.assertTrue(wiki_sync.is_repo_doc(root, paths["plan"])) self.assertFalse(wiki_sync.is_repo_doc(root, paths["audit"])) self.assertFalse(wiki_sync.is_repo_doc(root, paths["runtime"])) self.assertFalse(wiki_sync.is_repo_doc(root, paths["incidental"])) self.assertFalse(wiki_sync.is_repo_doc(root, paths["manifest"])) if __name__ == "__main__": unittest.main()