From dd1479ed82bb65e60dd5c665696649ee92f1ff43 Mon Sep 17 00:00:00 2001 From: discountchubbs Date: Tue, 21 Oct 2025 15:25:15 -0700 Subject: [PATCH] =?UTF-8?q?More=20macOS=20crap=20=F0=9F=A4=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/tests/test_auto_lane_change.py | 7 +++++++ .../lib/tests/test_lane_turn_desire.py | 20 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/sunnypilot/selfdrive/controls/lib/tests/test_auto_lane_change.py b/sunnypilot/selfdrive/controls/lib/tests/test_auto_lane_change.py index 5d1fa360ed..ca7c755fe1 100644 --- a/sunnypilot/selfdrive/controls/lib/tests/test_auto_lane_change.py +++ b/sunnypilot/selfdrive/controls/lib/tests/test_auto_lane_change.py @@ -7,11 +7,17 @@ See the LICENSE.md file in the root directory for more details. from parameterized import parameterized +import cereal.messaging from openpilot.common.realtime import DT_MDL from openpilot.selfdrive.controls.lib.desire_helper import DesireHelper, LaneChangeState, LaneChangeDirection from openpilot.sunnypilot.selfdrive.controls.lib.auto_lane_change import AutoLaneChangeController, AutoLaneChangeMode, \ AUTO_LANE_CHANGE_TIMER, ONE_SECOND_DELAY +class MockSubMaster: + def __init__(self, services): + pass + + AUTO_LANE_CHANGE_TIMER_COMBOS = [ (AutoLaneChangeMode.NUDGELESS, AUTO_LANE_CHANGE_TIMER[AutoLaneChangeMode.NUDGELESS]), (AutoLaneChangeMode.HALF_SECOND, AUTO_LANE_CHANGE_TIMER[AutoLaneChangeMode.HALF_SECOND]), @@ -23,6 +29,7 @@ AUTO_LANE_CHANGE_TIMER_COMBOS = [ class TestAutoLaneChangeController: def setup_method(self): + cereal.messaging.SubMaster = MockSubMaster self.DH = DesireHelper() self.alc = AutoLaneChangeController(self.DH) diff --git a/sunnypilot/selfdrive/controls/lib/tests/test_lane_turn_desire.py b/sunnypilot/selfdrive/controls/lib/tests/test_lane_turn_desire.py index 57fe7b684f..24f6a3ecdf 100644 --- a/sunnypilot/selfdrive/controls/lib/tests/test_lane_turn_desire.py +++ b/sunnypilot/selfdrive/controls/lib/tests/test_lane_turn_desire.py @@ -1,14 +1,29 @@ import pytest + +import cereal.messaging from cereal import log, custom from openpilot.common.params import Params from openpilot.selfdrive.controls.lib.desire_helper import DesireHelper from openpilot.sunnypilot.selfdrive.controls.lib.lane_turn_desire import LaneTurnController, LANE_CHANGE_SPEED_MIN -from openpilot.sunnypilot.selfdrive.controls.lib.auto_lane_change import AutoLaneChangeMode TurnDirection = custom.ModelDataV2SP.TurnDirection +class MockSubMaster: + def __init__(self, services): pass + + def update(self, timeout): pass + + def __getitem__(self, key): + return type('nav_msg', (), {'valid': False})() + + +@pytest.fixture(autouse=True) +def mock_submaster(): + cereal.messaging.SubMaster = MockSubMaster + + @pytest.mark.parametrize("left_blinker,right_blinker,v_ego,blindspot_left,blindspot_right,expected", [ (True, False, 5, False, False, TurnDirection.turnLeft), (False, True, 6, False, False, TurnDirection.turnRight), @@ -107,7 +122,6 @@ def set_lane_turn_params(): ]) def test_desire_helper_integration(carstate, lateral_active, lane_change_prob, expected_desire, set_lane_turn_params): dh = DesireHelper() - dh.alc.lane_change_set_timer = AutoLaneChangeMode.NUDGE for _ in range(10): dh.update(carstate, lateral_active, lane_change_prob) - assert dh.desire == expected_desire # The first four tests were unit tests to test the controller, where this tests the integration in desire helpers + assert dh.desire == expected_desire