feat: improve mode and peripheral orchestration
This commit is contained in:
@@ -554,6 +554,48 @@ class DriverSeatNativeCanTests(unittest.TestCase):
|
||||
self.assertEqual(bus.send_calls, 4)
|
||||
self.assertEqual(len(bus.sent), 3)
|
||||
|
||||
def test_window_already_at_target_is_verified_success_without_resend(self) -> None:
|
||||
config = self.runtime.build_function_config(
|
||||
"window",
|
||||
[
|
||||
{
|
||||
"domain": "window",
|
||||
"capability": "window.set_position",
|
||||
"target": "rear_left",
|
||||
"operation": "set",
|
||||
"parameters": {"position_pct": 0},
|
||||
}
|
||||
],
|
||||
"req-window-already-closed",
|
||||
"local_rules",
|
||||
)
|
||||
plan = self.runtime.compile(config)
|
||||
feedback = CanFrame(
|
||||
0x388,
|
||||
bytes.fromhex("00 00 01 00 01 00 66 00"),
|
||||
channel=1,
|
||||
is_fd=True,
|
||||
bitrate_switch=True,
|
||||
)
|
||||
bus = _FakeBus([feedback])
|
||||
|
||||
report = NativeCanExecutor(
|
||||
lambda: bus,
|
||||
feedback_timeout_ms=1,
|
||||
feedback_required=False,
|
||||
).execute(self.runtime, plan, config)
|
||||
|
||||
self.assertEqual(report["spec"]["status"], "succeeded")
|
||||
operation = report["spec"]["results"][0]
|
||||
self.assertEqual(operation["status"], "succeeded")
|
||||
self.assertEqual(operation["telemetry"]["sent_frames"], [])
|
||||
self.assertEqual(
|
||||
operation["telemetry"]["verification_status"],
|
||||
"verified_success",
|
||||
)
|
||||
self.assertEqual(operation["telemetry"]["delivery_status"], "not_required")
|
||||
self.assertTrue(operation["telemetry"]["physical_effect_confirmed"])
|
||||
|
||||
def test_memory_compile_rejects_missing_or_malformed_learned_slots(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = Path(directory) / "driver_memory.json"
|
||||
|
||||
Reference in New Issue
Block a user