from __future__ import annotations import unittest from tempfile import TemporaryDirectory from pathlib import Path from guide_board.discovery import discover_extensions from guide_board.execution import run_assessment from guide_board.planning import ( build_run_plan, validate_assessment_profile, validate_target_profile, ) ROOT = Path(__file__).resolve().parents[1] class CoreArchitectureTests(unittest.TestCase): def test_discovers_incubating_extensions(self) -> None: extensions = {extension.id for extension in discover_extensions(ROOT)} self.assertIn("sample-noop", extensions) self.assertIn("open-cmis-tck", extensions) def test_validates_sample_profiles(self) -> None: target = validate_target_profile(ROOT / "profiles" / "targets" / "sample-repository.json") assessment = validate_assessment_profile( ROOT / "profiles" / "assessments" / "sample-noop.json" ) self.assertEqual(target["id"], "sample-repository") self.assertEqual(assessment["target_profile_ref"], "sample-repository") def test_builds_sample_run_plan(self) -> None: plan = build_run_plan( ROOT, ROOT / "profiles" / "targets" / "sample-repository.json", ROOT / "profiles" / "assessments" / "sample-noop.json", ) self.assertEqual(plan["target_profile_snapshot"]["id"], "sample-repository") self.assertEqual(plan["extension_snapshots"][0]["id"], "sample-noop") self.assertEqual( [step["id"] for step in plan["ordered_steps"]], [ "preflight:sample-noop", "check-group:sample-noop:profile-shape", ], ) self.assertEqual( plan["ordered_steps"][1]["requirement_refs"], ["guide-board.sample-readiness.v0.profile-shape"], ) def test_builds_cmis_baseline_plan(self) -> None: plan = build_run_plan( ROOT, ROOT / "profiles" / "targets" / "kontextual-cmis-compat.json", ROOT / "profiles" / "assessments" / "cmis-browser-baseline.json", ) self.assertEqual(plan["extension_snapshots"][0]["id"], "open-cmis-tck") self.assertEqual(len(plan["ordered_steps"]), 3) def test_runs_sample_noop_assessment(self) -> None: with TemporaryDirectory() as temporary_directory: result = run_assessment( ROOT, ROOT / "profiles" / "targets" / "sample-repository.json", ROOT / "profiles" / "assessments" / "sample-noop.json", Path(temporary_directory) / "sample-run", ) run_dir = Path(result["run_dir"]) self.assertEqual(result["status"], "completed") self.assertTrue((run_dir / "run.json").exists()) self.assertTrue((run_dir / "normalized" / "evidence.json").exists()) self.assertTrue((run_dir / "reports" / "assessment-package.json").exists()) self.assertTrue((run_dir / "reports" / "report.md").exists()) if __name__ == "__main__": unittest.main()