openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.7 KiB

import pytest
from openpilot.system.hardware import TICI
from openpilot.system.hardware.tici.esim import LPA2, LPAProfileNotFoundError
class TestEsim:
"""
https://euicc-manual.osmocom.org/docs/rsp/known-test-profile
"""
TEST_ACTIVATION_CODE = 'LPA:1$rsp.truphone.com$QRF-BETTERROAMING-PMRDGIR2EARDEIT5'
TEST_ICCID = '8944476500001944011'
TEST_NICKNAME = 'test_profile'
@classmethod
def setup_class(cls):
if not TICI:
pytest.skip()
def setup_method(self):
5 days ago
self._cleanup()
def teardown_method(self):
5 days ago
self._cleanup()
def test_list_profiles(self):
lpa = LPA2()
profiles = lpa.list_profiles()
assert profiles is not None
def test_download_profile(self):
lpa = LPA2()
lpa.download_profile(self.TEST_ACTIVATION_CODE, self.TEST_NICKNAME)
assert self._profile_exists(self.TEST_ICCID, self.TEST_NICKNAME)
self.enable_profile(lpa)
self.disable_profile(lpa)
def enable_profile(self, lpa: LPA2):
lpa.enable_profile(self.TEST_ICCID)
current = lpa.get_active_profile()
assert current is not None
assert current['iccid'] == self.TEST_ICCID
def disable_profile(self, lpa: LPA2):
lpa.disable_profile(self.TEST_ICCID)
current = lpa.get_active_profile()
assert current is None
5 days ago
def _cleanup(self):
lpa = LPA2()
try:
lpa.delete_profile(self.TEST_ICCID)
except LPAProfileNotFoundError:
pass
assert not self._profile_exists(self.TEST_ICCID, self.TEST_NICKNAME)
lpa.process_notifications()
assert len(lpa.list_notifications()) == 0
def _profile_exists(self, iccid: str, nickname: str) -> bool:
lpa = LPA2()
profiles = lpa.list_profiles()
return any(p['iccid'] == iccid and p['nickname'] == nickname for p in profiles)