from __future__ import annotations import argparse import importlib.util import sys import unittest from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[1] CHECKER_PATH = REPO_ROOT / "scripts" / "check-dev-dashboard-ssot.py" def _load_checker(): spec = importlib.util.spec_from_file_location("check_dev_dashboard_ssot", CHECKER_PATH) if spec is None or spec.loader is None: raise RuntimeError(f"Cannot load {CHECKER_PATH}") module = importlib.util.module_from_spec(spec) sys.modules[spec.name] = module spec.loader.exec_module(module) return module checker = _load_checker() def _default_args() -> argparse.Namespace: return argparse.Namespace( dashboard=REPO_ROOT / "docs" / "dev_dashboard.html", source_gaps=REPO_ROOT / "docs" / "guides" / "source-docs-and-gaps.md", backlog=REPO_ROOT / "docs" / "ops" / "backlog-2026-06-26.md", testing=REPO_ROOT / "docs" / "guides" / "testing.md", local_development=REPO_ROOT / "docs" / "guides" / "local-development.md", ) class DevDashboardSsotTests(unittest.TestCase): def test_current_dashboard_matches_ssot_contract(self) -> None: report = checker.run_checks(_default_args()) failed = [check for check in report["checks"] if not check["passed"]] self.assertEqual([], failed) self.assertTrue(report["passed"]) self.assertEqual({"done": 25}, report["status_counts"]) def test_structure_parser_counts_nested_owner_columns(self) -> None: parser = checker._dashboard_structure( """
DECIDE DECIDED
GATE """ ) self.assertEqual({"done": 3, "doing": 1, "planned": 1}, parser.status_counts) self.assertEqual({"block": 2, "ext": 1}, parser.owner_column_counts) self.assertEqual(1, parser.decision_panel_rows) self.assertEqual(1, parser.external_gate_rows) def test_check_status_detection_ignores_plain_hyphenated_text(self) -> None: self.assertFalse(checker._has_check_status_markup("

readiness-checked metadata

")) self.assertTrue( checker._has_check_status_markup('CHECK') ) def test_repeated_runs_are_stateless(self) -> None: reports = [checker.run_checks(_default_args()) for _ in range(3)] self.assertTrue(all(report["passed"] for report in reports)) self.assertEqual( [reports[0]["status_counts"], reports[1]["status_counts"], reports[2]["status_counts"]], [{"done": 25}, {"done": 25}, {"done": 25}], ) if __name__ == "__main__": unittest.main()