K8: record blocked owner review and release evidence
This commit is contained in:
62
scripts/test_release_closure.py
Normal file
62
scripts/test_release_closure.py
Normal file
@@ -0,0 +1,62 @@
|
||||
import json
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
||||
|
||||
from generate_release_closure import generate
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
COMPATIBILITY = ROOT / "coverage/compatibility-matrix.report.json"
|
||||
LICENSE = ROOT / "coverage/license-closure.report.json"
|
||||
INDEX = ROOT / "coverage/release-evidence-index.json"
|
||||
AGGREGATE = ROOT / "coverage/release-closure.report.json"
|
||||
|
||||
|
||||
class ReleaseClosureTests(unittest.TestCase):
|
||||
def test_report_contract_and_explicit_blockers(self):
|
||||
compatibility = json.loads(COMPATIBILITY.read_text(encoding="utf-8"))
|
||||
license_report = json.loads(LICENSE.read_text(encoding="utf-8"))
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
aggregate = json.loads(AGGREGATE.read_text(encoding="utf-8"))
|
||||
self.assertEqual(compatibility["schema"], "release-compatibility-matrix.v1")
|
||||
self.assertEqual(license_report["schema"], "release-license-closure.v1")
|
||||
self.assertEqual(index["schema"], "release-evidence-index.v1")
|
||||
self.assertEqual(aggregate["schema"], "release-closure-report.v1")
|
||||
self.assertEqual(aggregate["evidence_index"]["sha256"], index["report_sha256"])
|
||||
self.assertEqual(index["status"], "blocked")
|
||||
self.assertIn("official_oracle_missing", compatibility["blockers"])
|
||||
self.assertIn("manifest_seed_unassigned", {row["id"] for row in index["blockers"]})
|
||||
self.assertTrue(compatibility["oracle"]["status"] == "blocked")
|
||||
self.assertTrue(license_report["source_inventory"]["unassigned_license_entries"] > 0)
|
||||
self.assertEqual(license_report["entry_closure"]["entries"], 8053)
|
||||
self.assertTrue(license_report["entry_closure"]["all_entries_have_owner"])
|
||||
self.assertTrue(license_report["entry_closure"]["all_entries_have_evidence_status"])
|
||||
self.assertTrue(index["integrity"]["license_source_index_complete"])
|
||||
self.assertTrue(index["integrity"]["implementation_license_blocked_explicitly"])
|
||||
self.assertEqual(index["manifest_summary"]["total"], 8053)
|
||||
self.assertEqual(index["manifest_summary"]["needs_owner"], 6249)
|
||||
self.assertEqual(index["manifest_summary"]["accepted"], 0)
|
||||
|
||||
def test_affected_entries_have_explicit_evidence_shape(self):
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
rows = index["affected_manifest_entries"]
|
||||
self.assertEqual(len(rows), 1804)
|
||||
self.assertTrue(index["manifest_summary"]["affected_entries_complete"])
|
||||
self.assertTrue(all(row["owner"] for row in rows))
|
||||
self.assertTrue(all(row["inputs"] and row["outputs"] and row["test_id"] for row in rows))
|
||||
self.assertTrue(all(row["oracle_status"] == "blocked" for row in rows))
|
||||
self.assertTrue(all(row["difference_status"] == "none_recorded" for row in rows))
|
||||
|
||||
def test_generation_is_deterministic(self):
|
||||
before = {path: path.read_bytes() for path in (COMPATIBILITY, LICENSE, INDEX, AGGREGATE)}
|
||||
generated = generate(ROOT, ROOT / "coverage")
|
||||
after = {path: path.read_bytes() for path in (COMPATIBILITY, LICENSE, INDEX, AGGREGATE)}
|
||||
self.assertEqual(before, after)
|
||||
self.assertEqual(generated["index"]["report_sha256"], json.loads(after[INDEX].decode())["report_sha256"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user