Files
Jyotisha/tests/test_final_jhora_evidence_packet_acceptance.py
T
2026-07-08 18:34:13 +08:00

135 lines
5.3 KiB
Python

#!/usr/bin/env python3
"""Acceptance guard for the final JHora/PDF evidence packet artifacts."""
from __future__ import annotations
import json
import re
from pathlib import Path
import scripts.sync_final_evidence_packet_status as sync_status
ROOT = Path(__file__).resolve().parents[1]
WORK_DIR = ROOT / "scratch" / "local" / "pdf_review_123456"
ERROR_LOG = ROOT / "docs" / "research" / "final_output_acceptance_error_log_2026_07_04.md"
def _latest_packet() -> tuple[int, Path, dict]:
sync_status.main()
packets: list[tuple[int, Path]] = []
for path in WORK_DIR.glob("jhora_master_evidence_packet_public_sample_19550224_1915.v*.json"):
match = re.search(r"\.v(\d+)\.json$", path.name)
if match:
packets.append((int(match.group(1)), path))
assert packets, "no versioned JHora master evidence packets found"
version, path = max(packets)
return version, path, json.loads(path.read_text(encoding="utf-8"))
def test_latest_master_packet_has_consistent_final_status_and_version_metadata() -> None:
version, path, packet = _latest_packet()
metadata = packet["metadata"]
assert version >= 24
assert packet["status"] == "final_output_v1"
assert metadata["status"] == "final_output_v1"
assert metadata["current_version"] == f"v{version}"
assert metadata["packet_version"] == f"v{version}"
assert metadata["canonical_packet"] == path.name
assert packet["structured_v13_final_integrated_report"]["status"] == "final_output_v1"
def test_latest_master_packet_links_all_final_report_artifacts() -> None:
_, _, packet = _latest_packet()
required_sections = {
"structured_v21_raman_full_report_complete": ("source", "compiled-full-report-v1"),
"structured_v22_raman_full_report_pdf_artifact": ("pdf", "pdf-rendered-qa-pass"),
"structured_v23_raman_full_report_raw_data_appendix": ("source", "raw-data-appendix-v1"),
}
for section, (artifact_key, status) in required_sections.items():
payload = packet[section]
assert payload["status"] == status
artifact = ROOT / payload[artifact_key]
assert artifact.exists(), f"missing artifact for {section}: {artifact}"
assert artifact.stat().st_size > 1000, f"artifact too small for {section}: {artifact}"
pdf_payload = packet["structured_v22_raman_full_report_pdf_artifact"]
for rel_path in pdf_payload["qa_rendered_pages"]:
qa_page = WORK_DIR / rel_path
assert qa_page.exists(), f"missing PDF QA render page: {qa_page}"
assert qa_page.stat().st_size > 1000
def test_status_ledger_points_to_latest_packet_and_has_fresh_next_step() -> None:
version, path, _ = _latest_packet()
ledger = (WORK_DIR / "evidence_packet_status_ledger_public_sample_19550224_1915.md").read_text(
encoding="utf-8"
)
assert path.name in ledger
assert f"`{path.name}` | active" in ledger
assert "Raman full report complete" in ledger
assert "Raman full report PDF" in ledger
assert "Raman full report raw data appendix" in ledger
assert "Chapter 04 Parashari Dasha layer - Vimshottari" not in ledger
assert "Acceptance/error-log gate" in ledger
assert f"v{version}" in ledger
def test_acceptance_error_log_records_known_failures_and_prevention_rules() -> None:
text = ERROR_LOG.read_text(encoding="utf-8")
required_phrases = [
"status metadata drift",
"canonical packet drift",
"stale next-step ledger",
"blank PDF artifact",
"read this log before editing",
"test_final_jhora_evidence_packet_acceptance.py",
]
for phrase in required_phrases:
assert phrase in text
def test_sync_script_repairs_latest_packet_metadata_and_ledger(tmp_path, monkeypatch) -> None:
for version in (2, 10):
packet = {
"status": "final_output_v1",
"metadata": {
"status": "final_output_v1",
"current_version": "v1",
"packet_version": f"v{version}",
"canonical_packet": "jhora_master_evidence_packet_public_sample_19550224_1915.v1.json",
},
"structured_v13_final_integrated_report": {"status": "final_output_v1"},
}
(tmp_path / f"jhora_master_evidence_packet_public_sample_19550224_1915.v{version}.json").write_text(
json.dumps(packet, ensure_ascii=False),
encoding="utf-8",
)
ledger = tmp_path / "evidence_packet_status_ledger_public_sample_19550224_1915.md"
ledger.write_text(
"| Master evidence packet | `jhora_master_evidence_packet_public_sample_19550224_1915.v2.json` | active | Current canonical structured packet. |\n",
encoding="utf-8",
)
monkeypatch.setattr(sync_status, "WORK_DIR", tmp_path)
assert sync_status.main() == 0
latest = json.loads(
(tmp_path / "jhora_master_evidence_packet_public_sample_19550224_1915.v10.json").read_text(
encoding="utf-8"
)
)
assert latest["metadata"]["current_version"] == "v10"
assert latest["metadata"]["packet_version"] == "v10"
assert (
latest["metadata"]["canonical_packet"]
== "jhora_master_evidence_packet_public_sample_19550224_1915.v10.json"
)
assert "jhora_master_evidence_packet_public_sample_19550224_1915.v10.json" in ledger.read_text(
encoding="utf-8"
)