generated from coulomb/repo-seed
first working guide-board architecture core
This commit is contained in:
84
tests/test_core.py
Normal file
84
tests/test_core.py
Normal file
@@ -0,0 +1,84 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user