1
0
This commit is contained in:
Aiden
2026-05-27 21:37:50 +10:00
parent 21f0e455ee
commit 4364d0ed48
54 changed files with 30241 additions and 191 deletions

View File

@@ -84,6 +84,67 @@ class SerialScenarioTest(unittest.TestCase):
self.assertIn("before_send=1", output)
self.assertIn("delays=0,0.25,1", output)
def test_dry_run_summarizes_listen_ack_until_quiet(self):
scenario = {
"name": "unit-quiet-ack",
"steps": [
{
"action": "listen_ack_until_quiet",
"seconds": 12.0,
"quiet_seconds": 0.9,
"target_mode": "queued_reports",
"ack_mode": "cmd5_selector",
"max_acks": 16,
}
],
}
with tempfile.TemporaryDirectory() as tmpdir:
path = Path(tmpdir) / "scenario.json"
path.write_text(json.dumps(scenario), encoding="utf-8")
stdout = io.StringIO()
exit_code = main([str(path), "--dry-run"], stdout=stdout)
output = stdout.getvalue()
self.assertEqual(exit_code, 0)
self.assertIn("step[1]=listen_ack_until_quiet", output)
self.assertIn("seconds=12.000", output)
self.assertIn("quiet=0.900s", output)
self.assertIn("target_mode=queued_reports", output)
self.assertIn("ack_mode=cmd5_selector", output)
def test_dry_run_summarizes_respond_on_rules(self):
scenario = {
"name": "unit-respond-on",
"steps": [
{
"action": "listen_ack",
"seconds": 2.0,
"target_mode": "queued_reports",
"ack_mode": "cmd5_selector",
"respond_on": [
{
"frames": ["00 00 13 40 00 09"],
"send": "00 00 13 40 00 09",
"label": "mirror_selector_0013_active_from_button",
}
],
}
],
}
with tempfile.TemporaryDirectory() as tmpdir:
path = Path(tmpdir) / "scenario.json"
path.write_text(json.dumps(scenario), encoding="utf-8")
stdout = io.StringIO()
exit_code = main([str(path), "--dry-run"], stdout=stdout)
output = stdout.getvalue()
self.assertEqual(exit_code, 0)
self.assertIn("respond_on=1", output)
self.assertIn("send=00 00 13 40 00 09", output)
self.assertIn("label=mirror_selector_0013_active_from_button", output)
if __name__ == "__main__":
unittest.main()