test_landing_cycle.py file-level

at sha256:a · View file ↗ · Intel ↗

History
1 files
1 commits
0 hotspots
0 🧊 dead
0 💥 blast risk
sha256:6 fix(ISR): default require_independent_second_reviewer to require Opera… · aaronrene · Sep 2, 2026
1 """E2E — full landing asset cycle on kit root."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from tools.landing.schema import load_manifest
8 from tools.landing.validate import validate_landing
9
10 KIT_ROOT = Path(__file__).resolve().parents[2]
11
12
13 def test_e2e_landing_manifest_html_license_security_aligned() -> None:
14 manifest = load_manifest(KIT_ROOT / "docs" / "landing" / "manifest.yaml")
15 index_html = (KIT_ROOT / "docs" / "landing" / "index.html").read_text(encoding="utf-8")
16 scenarios_html = (
17 KIT_ROOT / "docs" / "landing" / "scenarios" / "index.html"
18 ).read_text(encoding="utf-8")
19
20 for section_id in manifest.section_ids:
21 assert f'id="{section_id}"' in index_html
22
23 for persona_id in manifest.persona_ids:
24 assert f'id="persona-{persona_id}"' in scenarios_html
25
26 result = validate_landing(KIT_ROOT)
27 assert result.ok, result.errors
28
29 security = (KIT_ROOT / "SECURITY.md").read_text(encoding="utf-8")
30 assert "Reporting a vulnerability" in security