parent
							
								
									314154c614
								
							
						
					
					
						commit
						4c9038e5e7
					
				
				 3 changed files with 133 additions and 56 deletions
			
			
		| @ -0,0 +1,71 @@ | |||||||
|  | import pytest | ||||||
|  | import time | ||||||
|  | 
 | ||||||
|  | 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 ensure_profile_deleted(self): | ||||||
|  |     lpa = LPA2() | ||||||
|  |     try: | ||||||
|  |       lpa.delete_profile(self.TEST_ICCID) | ||||||
|  |     except LPAProfileNotFoundError: | ||||||
|  |       pass | ||||||
|  |     assert not self._profile_exists(self.TEST_ICCID, self.TEST_NICKNAME) | ||||||
|  | 
 | ||||||
|  |   def setup_method(self): | ||||||
|  |     self.ensure_profile_deleted() | ||||||
|  | 
 | ||||||
|  |     # clear out any pending notifications | ||||||
|  |     lpa = LPA2() | ||||||
|  |     lpa.process_notifications() | ||||||
|  |     assert len(lpa.list_notifications()) == 0 | ||||||
|  | 
 | ||||||
|  |   def teardown_method(self): | ||||||
|  |     self.ensure_profile_deleted() | ||||||
|  | 
 | ||||||
|  |   def test_list_profiles(self): | ||||||
|  |     lpa = LPA2() | ||||||
|  |     profiles = lpa.list_profiles() | ||||||
|  |     assert profiles is not None | ||||||
|  | 
 | ||||||
|  |   def test_download_profile(self): | ||||||
|  |     lpa = LPA2() | ||||||
|  |     try: | ||||||
|  |       lpa.delete_profile(self.TEST_ICCID) | ||||||
|  |     except Exception as e: | ||||||
|  |       print(e) | ||||||
|  |     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 | ||||||
|  | 
 | ||||||
|  |   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) | ||||||
					Loading…
					
					
				
		Reference in new issue