20 lines
1.5 KiB
Python
20 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
from __future__ import annotations
|
|
import argparse,json,unittest
|
|
from pathlib import Path
|
|
P=argparse.ArgumentParser();P.add_argument("--root",type=Path,required=True);ROOT=P.parse_args().root
|
|
class Phase10DJ(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):cls.data=json.loads((ROOT/"manifests/retroarch/phase-1.0dj-di-t2-result.json").read_text())
|
|
def test_single_failed_attempt(self):
|
|
r=self.data["run"];self.assertEqual(r["connection_attempts"],1);self.assertFalse(r["connection_established"] or r["retry_performed"] or r["reconnect_performed"]);self.assertEqual((r["command_bytes_sent"],r["received_bytes"]),(0,0))
|
|
def test_no_device_effect(self):
|
|
r=self.data["run"];self.assertFalse(any(r[k] for k in ("device_file_read","device_write","payload_transfer","payload_execution","raw_transcript_retained","serial_retained","telemetry_retained")))
|
|
def test_no_promoted_evidence(self):self.assertFalse(any(self.data["evidence"].values()))
|
|
def test_authority_consumed(self):
|
|
a=self.data["authorization_state"];self.assertTrue(a["di_t2_authorization_consumed"]);self.assertFalse(any(v for k,v in a.items() if k!="di_t2_authorization_consumed"))
|
|
def test_next_step_requires_operator_and_new_permission(self):
|
|
d=self.data["decision"];self.assertTrue(d["operator_must_confirm_shsrv_listener_ready"] and d["new_exact_permission_required_after_readiness_change"]);self.assertFalse(d["retry_allowed"] or d["device_action_allowed"])
|
|
if __name__=="__main__":unittest.main(argv=[__file__])
|