Complete XYZAC LinuxCNC WASM parity and smooth 3D preview
This commit is contained in:
38
scripts/test_xyzac_trt_source_slices.py
Normal file
38
scripts/test_xyzac_trt_source_slices.py
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env python3
|
||||
import hashlib
|
||||
import json
|
||||
import subprocess
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
REPORT = ROOT / "coverage/xyzac-trt-source-slice-inventory.report.json"
|
||||
|
||||
|
||||
class XyzacSourceSliceTest(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
subprocess.run(["python3", "scripts/generate_xyzac_trt_source_slices.py"], cwd=ROOT, check=True, stdout=subprocess.PIPE, text=True)
|
||||
cls.report = json.loads(REPORT.read_text(encoding="utf-8"))
|
||||
|
||||
def test_self_hash(self):
|
||||
unsigned = dict(self.report)
|
||||
actual = unsigned.pop("report_sha256")
|
||||
canonical = json.dumps(unsigned, ensure_ascii=False, sort_keys=True, separators=(",", ":"))
|
||||
self.assertEqual(actual, hashlib.sha256(canonical.encode()).hexdigest())
|
||||
|
||||
def test_source_slice_closure(self):
|
||||
self.assertEqual(self.report["counts"]["unregistered_slices"], 0)
|
||||
self.assertTrue(self.report["checks"]["all_controls_commands_states_have_slice_id"])
|
||||
self.assertTrue(all(row["source"]["sha256"] for row in self.report["slices"]))
|
||||
|
||||
def test_authority_and_required_rtcp(self):
|
||||
self.assertEqual(self.report["authority"]["js_authority"], 0)
|
||||
ids = {row["slice_id"] for row in self.report["slices"]}
|
||||
self.assertIn("AXIS-XYZAC-M428-M429-M430", ids)
|
||||
self.assertIn("AXIS-XYZAC-KINEMATICS", ids)
|
||||
self.assertEqual(self.report["release_status"], "STOP_RELEASE")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user