"""Golden byte-for-byte conformance (ingest-spec §11) — load-bearing. Each golden case is re-materialized into a fresh directory and compared against its expected-bundle file by file, byte for byte. The test MUST fail when any byte of an expected bundle diverges. Offline, credential-free: the sql fixture is a committed database file, the http case runs against mock payloads served from its fixture directory. """ from __future__ import annotations from pathlib import Path import pytest from llm_ingestion_okf.materialize import materialize_bundle EXAMPLES = Path(__file__).parent.parent / "examples" INGESTED_AT_NAME = "ingested-at.txt" def fixture_backed_get(fixture_dir: Path) -> object: """A mock transport serving fixture/{query path} — never a socket.""" def get(url: str, credential: str | None) -> str: path = url.rsplit("/", 1)[-1] return (fixture_dir / path).read_text(encoding="utf-8") return get def materialize_case(case_dir: Path, out_dir: Path, monkeypatch: pytest.MonkeyPatch) -> None: ingested_at = (case_dir / INGESTED_AT_NAME).read_text(encoding="utf-8").strip() if case_dir.name.endswith("sql"): monkeypatch.setenv("OKF_GOLDEN_SQL_DB", str(case_dir / "fixture" / "metrics.db")) materialize_bundle(case_dir / "manifest.json", out_dir, ingested_at) elif case_dir.name.endswith("http"): materialize_bundle( case_dir / "manifest.json", out_dir, ingested_at, allow_network=True, http_get=fixture_backed_get(case_dir / "fixture"), # type: ignore[arg-type] ) else: materialize_bundle(case_dir / "manifest.json", out_dir, ingested_at) @pytest.mark.parametrize("case", ["ingest-golden-file", "ingest-golden-sql", "ingest-golden-http"]) def test_golden_case_byte_for_byte( case: str, tmp_path: Path, monkeypatch: pytest.MonkeyPatch ) -> None: case_dir = EXAMPLES / case expected_dir = case_dir / "expected-bundle" out_dir = tmp_path / "bundle" materialize_case(case_dir, out_dir, monkeypatch) expected_files = sorted(path.name for path in expected_dir.iterdir()) actual_files = sorted(path.name for path in out_dir.iterdir()) assert actual_files == expected_files for name in expected_files: assert (out_dir / name).read_bytes() == (expected_dir / name).read_bytes(), ( f"{case}/{name} diverges from the golden bytes" )