forked from IQ.Lvbs/IQ.Pilot
42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
from unittest.mock import patch
|
|
|
|
from openpilot.iqpilot.konn3kt import registration
|
|
|
|
|
|
def test_get_registration_identifiers_uses_serial_without_imei():
|
|
imei_calls = {"count": 0}
|
|
|
|
def fake_get_imei(slot: int) -> str | None:
|
|
imei_calls["count"] += 1
|
|
return None
|
|
|
|
monotonic_values = iter([0.0, 0.0, 1.0, 2.0])
|
|
with patch.object(registration.HARDWARE, "get_serial", return_value="lite123"), \
|
|
patch.object(registration.HARDWARE, "get_imei", side_effect=fake_get_imei), \
|
|
patch.object(registration.time, "monotonic", side_effect=lambda: next(monotonic_values)), \
|
|
patch.object(registration.time, "sleep", return_value=None):
|
|
serial, imei1, imei2 = registration.get_registration_identifiers(wait_timeout=1.5, show_spinner=False)
|
|
|
|
assert serial == "lite123"
|
|
assert imei1 == ""
|
|
assert imei2 == ""
|
|
assert imei_calls["count"] >= 2
|
|
|
|
|
|
def test_get_registration_identifiers_returns_first_available_imei():
|
|
imeis = [None, "123456789012345"]
|
|
monotonic_values = iter([0.0, 0.0, 0.5, 0.5])
|
|
|
|
def fake_get_imei(slot: int) -> str | None:
|
|
return imeis.pop(0) if slot == 0 else None
|
|
|
|
with patch.object(registration.HARDWARE, "get_serial", return_value="lite123"), \
|
|
patch.object(registration.HARDWARE, "get_imei", side_effect=fake_get_imei), \
|
|
patch.object(registration.time, "monotonic", side_effect=lambda: next(monotonic_values)), \
|
|
patch.object(registration.time, "sleep", return_value=None):
|
|
serial, imei1, imei2 = registration.get_registration_identifiers(wait_timeout=2.0, show_spinner=False)
|
|
|
|
assert serial == "lite123"
|
|
assert imei1 == "123456789012345"
|
|
assert imei2 == ""
|