test_lac_integrity.py
file-level
1
files
1
commits
0
hotspots
0
🧊 dead
0
💥 blast risk
| 1 | """Data-integrity tests — Landing + access clarity diagrams + Download href (§LAC.12).""" |
| 2 | |
| 3 | from __future__ import annotations |
| 4 | |
| 5 | import hashlib |
| 6 | from pathlib import Path |
| 7 | |
| 8 | from tools.landing.validate import FROZEN_PRIMARY_DOWNLOAD_HREF, validate_landing |
| 9 | |
| 10 | KIT_ROOT = Path(__file__).resolve().parents[2] |
| 11 | DIAGRAMS = ( |
| 12 | "lanes.svg", |
| 13 | "regimes.svg", |
| 14 | "layers.svg", |
| 15 | "kit-consumer.svg", |
| 16 | ) |
| 17 | |
| 18 | |
| 19 | def test_landing_svgs_well_formed_and_checksum_stable() -> None: |
| 20 | digests: list[str] = [] |
| 21 | for name in DIAGRAMS: |
| 22 | path = KIT_ROOT / "docs" / "landing" / "assets" / "diagrams" / name |
| 23 | raw = path.read_bytes() |
| 24 | assert len(raw) > 32 |
| 25 | text = raw.decode("utf-8") |
| 26 | assert "<svg" in text.lower() |
| 27 | digests.append(hashlib.sha256(raw).hexdigest()) |
| 28 | |
| 29 | # Second pass — byte-stable. |
| 30 | for name, expected in zip(DIAGRAMS, digests, strict=True): |
| 31 | path = KIT_ROOT / "docs" / "landing" / "assets" / "diagrams" / name |
| 32 | assert hashlib.sha256(path.read_bytes()).hexdigest() == expected |
| 33 | |
| 34 | |
| 35 | def test_download_href_host_is_github_releases_only() -> None: |
| 36 | assert FROZEN_PRIMARY_DOWNLOAD_HREF.startswith( |
| 37 | "https://github.com/aaronrene/overseer-kit/releases/download/" |
| 38 | ) |
| 39 | assert FROZEN_PRIMARY_DOWNLOAD_HREF.endswith(".dmg") |
| 40 | html = (KIT_ROOT / "docs" / "landing" / "index.html").read_text(encoding="utf-8") |
| 41 | assert FROZEN_PRIMARY_DOWNLOAD_HREF in html |
| 42 | # No alternate non-GitHub primary CTA host. |
| 43 | assert 'id="cta-download-mac"' in html |
| 44 | result = validate_landing(KIT_ROOT) |
| 45 | assert result.ok, result.errors |
| 46 | |
| 47 | |
| 48 | def test_landing_diagrams_match_path_b_sources() -> None: |
| 49 | for name in DIAGRAMS: |
| 50 | landing = KIT_ROOT / "docs" / "landing" / "assets" / "diagrams" / name |
| 51 | source = KIT_ROOT / "tools" / "app" / "static" / "assets" / "diagrams" / name |
| 52 | assert landing.read_bytes() == source.read_bytes() |