test_landing_cycle.py python
30 lines 1.0 KB
Raw
sha256:0e9549ec7b463911bc08b7d586dc320b1ac9b1f5c943ee7e3865dcc6cb0f6f83 chore(governance): sync handover+roadmap to 84db8c8 (drift:… Human 21 hours ago
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
File History 1 commit
sha256:6abcf1fa82a7a621ccbc945f19acdba5bc0db54569599404a1452fb4a096a199 fix(ISR): default require_independent_second_reviewer to require Human minor 21 hours ago