From 315312c30ace2f8139febf4b71ca806c98e44123 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Tue, 19 Nov 2024 01:54:12 -0500 Subject: [PATCH] user disable tests --- sunnypilot/mads/tests/test_mads_state_machine.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sunnypilot/mads/tests/test_mads_state_machine.py b/sunnypilot/mads/tests/test_mads_state_machine.py index 178859259e..09f2e97d14 100644 --- a/sunnypilot/mads/tests/test_mads_state_machine.py +++ b/sunnypilot/mads/tests/test_mads_state_machine.py @@ -1,12 +1,13 @@ import pytest from pytest_mock import MockerFixture -from cereal import custom +from cereal import log, custom from openpilot.common.realtime import DT_CTRL from openpilot.sunnypilot.mads.state import StateMachine, SOFT_DISABLE_TIME from openpilot.selfdrive.selfdrived.events import Events, ET, EVENTS, NormalPermanentAlert State = custom.SelfdriveStateSP.ModularAssistiveDrivingSystem.ModularAssistiveDrivingSystemState +EventName = log.OnroadEvent.EventName # The event types that maintain the current state MAINTAIN_STATES = {State.enabled: (None,), State.disabled: (None,), State.softDisabling: (ET.SOFT_DISABLE,), @@ -54,7 +55,18 @@ class TestMADSStateMachine: self.events.add(make_event([et, ET.USER_DISABLE])) self.state_machine.state = state self.state_machine.update(self.events) - assert self.state_machine.state in (State.disabled, State.paused) + assert State.disabled == self.state_machine.state + self.events.clear() + + def test_user_disable_to_paused(self): + for state in ALL_STATES: + for et in MAINTAIN_STATES[state]: + self.events.add(make_event([et, ET.USER_DISABLE])) + self.events.add(EventName.silentLkasDisable) + self.state_machine.state = state + self.state_machine.update(self.events) + final_state = State.paused if self.events.has(EventName.silentLkasDisable) and state != State.disabled else State.disabled + assert self.state_machine.state == final_state self.events.clear() def test_soft_disable(self):