Match persisted language and bounded proof wait test fixtures

This commit is contained in:
Dom
2026-10-29 19:24:19 -05:00
parent 4dd24beabc
commit 1f1b1d5db9
3 changed files with 31 additions and 11 deletions
@@ -1,6 +1,6 @@
"""A fresh queued proof may replace an expired snapshot; no lease is renewed."""
from unittest.mock import patch
from unittest.mock import call, patch
import pytest
from opendbc.can import CANPacker
from opendbc.car import Bus
@@ -212,8 +212,11 @@ def test_queued_fresh_sdgm_axis_is_consumed_before_steering_gate(c9, case):
)
pending = [] if case in ('empty', 'old_long_axis_empty') else [v.as_reader() for v in values.values()]
transport_events = []
def receive(timeout):
nonlocal now
transport_events.append(('receive', timeout))
assert timeout == 0
controls.sm.update_msgs(now / 1e9, pending)
if case == 'clock_crosses_deadline':
@@ -223,15 +226,32 @@ def test_queued_fresh_sdgm_axis_is_consumed_before_steering_gate(c9, case):
with (
patch.object(controls.sm, 'update', side_effect=receive) as receive_latest,
patch('openpilot.selfdrive.controls.controlsd.time.monotonic_ns', return_value=now) as decision_clock,
patch('openpilot.cereal.messaging.Poller') as poller,
):
poller.return_value.registerSocket.side_effect = lambda socket: transport_events.append(('register', socket))
poller.return_value.poll.side_effect = lambda timeout: transport_events.append(('poll', timeout))
command, _ = controls.state_control()
# GM may refresh an expired combined proof, but cannot start LONG on a LAT-only receipt.
expected = case in ('healthy', 'live_snapshot', 'disabled_long_candidate', 'stock_sibling', 'stock_cruise_off', 'new_host_long', 'old_long_axis')
assert command.latActive == expected and not command.longActive, (case, command.to_dict())
if case in ('live_snapshot', 'old_long_active_only', 'old_long_desired_only'):
receive_latest.assert_not_called()
poller.assert_not_called()
assert not transport_events
elif case in ('empty', 'old_long_axis_empty'):
# Only an unchanged header permits the bounded wait and second receive.
socket = controls.sm.sock['aolAxisState']
poller.assert_called_once_with()
poller.return_value.registerSocket.assert_called_once_with(socket)
poller.return_value.poll.assert_called_once_with(10)
assert receive_latest.call_args_list == [call(0), call(0)]
assert transport_events == [('receive', 0), ('register', socket), ('poll', 10), ('receive', 0)]
assert controls.sm.logMonoTime['aolAxisState'] == BASE
assert controls.sm['aolAxisState'].validUntilMonoTime == original_deadline
else:
receive_latest.assert_called_once_with(0)
poller.assert_not_called()
assert transport_events == [('receive', 0)]
if case == 'old_long_axis':
refreshed = controls.sm['aolAxisState']
assert refreshed.sourceCarStateMonoTime == BASE + 25_000_000
@@ -1,16 +1,16 @@
from openpilot.common.params import Params
from openpilot.system.ui.lib.multilang import Multilang, PLURAL_SELECTORS
def test_external_language_selection_and_english_fallback():
def test_external_language_selection_and_english_fallback(tmp_path):
language = Multilang()
class SavedLanguage:
value = 'vi'
def get(self, key):
class SavedLanguage(Params):
def get(self, key, block=False, return_default=False):
assert key == 'LanguageSetting'
return self.value
return super().get(key, block=block, return_default=return_default)
saved = SavedLanguage()
saved = SavedLanguage(str(tmp_path))
saved.put('LanguageSetting', 'vi', block=True)
language._params = saved
language.refresh_language()
assert language.language == 'vi'
@@ -18,9 +18,9 @@ def test_external_language_selection_and_english_fallback():
assert language.tr('Untranslated text') == 'Untranslated text'
assert language.trn('{} day ago', '{} days ago', 2) == '{} ngày trước'
assert PLURAL_SELECTORS['vi'](0) == PLURAL_SELECTORS['vi'](2) == 0
saved.value = 'main_ja'
saved.put('LanguageSetting', 'main_ja', block=True)
language.refresh_language()
assert language.language == 'ja' and language.requires_font_fallback()
saved.value = 'unknown'
saved.put('LanguageSetting', 'unknown', block=True)
language.refresh_language()
assert language.language == 'en' and language.tr('Cancel') == 'Cancel'
+1 -1
View File
@@ -1 +1 @@
{"protected_inventory_sha256": "505172af4fab7bd15c27b90d3c52205e2a64db67875aa1447008cc0ed932c5dc", "schema_version": 1}
{"protected_inventory_sha256": "d7b4a160cc976f0f185161e66ca79eda0e872a574013ab8481a5e8411a1f78c3", "schema_version": 1}