14 lines
890 B
Python
14 lines
890 B
Python
#!/usr/bin/env python3
|
|
import hashlib,json,unittest
|
|
from pathlib import Path
|
|
import sys
|
|
sys.path.insert(0,str(Path(__file__).resolve().parent))
|
|
from generate_workspace_runtime_report import OUTPUT,generate
|
|
ROOT=Path(__file__).resolve().parents[1]
|
|
class WorkspaceRuntimeReportTests(unittest.TestCase):
|
|
def test_report(self):
|
|
r=json.loads((ROOT/OUTPUT).read_text());u={k:v for k,v in r.items() if k!="report_sha256"};h=hashlib.sha256(json.dumps(u,ensure_ascii=False,sort_keys=True,separators=(",",":")).encode()).hexdigest();self.assertEqual(r["task_id"],"P2-01");self.assertEqual(r["implementation_status"],"verified");self.assertEqual(r["report_sha256"],h)
|
|
def test_deterministic(self):
|
|
b=(ROOT/OUTPUT).read_bytes();r=generate();self.assertEqual(b,(ROOT/OUTPUT).read_bytes());self.assertEqual(r["report_sha256"],json.loads(b)["report_sha256"])
|
|
if __name__=="__main__":unittest.main()
|