import hashlib import json import unittest from pathlib import Path import generate_technical_delivery_report ROOT = Path(__file__).resolve().parents[1] class TechnicalDeliveryTests(unittest.TestCase): def test_report(self): report = json.loads((ROOT / "coverage/complete-simulation-technical-delivery.report.json").read_text()) self.assertEqual(report["schema"], "complete-simulation-technical-delivery.v1") self.assertGreaterEqual(report["verified_count"], 20) self.assertEqual(report["release"]["action"], "STOP_RELEASE") def test_hash(self): report = json.loads((ROOT / "coverage/complete-simulation-technical-delivery.report.json").read_text()) unsigned = dict(report) actual = unsigned.pop("report_sha256") self.assertEqual(actual, hashlib.sha256(generate_technical_delivery_report.canonical(unsigned).encode()).hexdigest()) if __name__ == "__main__": unittest.main()