1import os 2import re 3 4from acts import utils 5from acts import signals 6from acts.base_test import BaseTestClass 7from acts_contrib.test_utils.tel.tel_defines import EventSmsSentSuccess 8from acts_contrib.test_utils.tel.tel_test_utils import get_iccid_by_adb 9from acts_contrib.test_utils.tel.tel_test_utils import is_sim_ready_by_adb 10 11 12class GnssSimInventoryTest(BaseTestClass): 13 """ GNSS SIM Inventory Tests""" 14 15 def setup_class(self): 16 super().setup_class() 17 self.ad = self.android_devices[0] 18 19 def check_device_status(self): 20 if int(self.ad.adb.shell("settings get global airplane_mode_on")) != 0: 21 self.ad.log.info("Force airplane mode off") 22 utils.force_airplane_mode(self.ad, False) 23 if not is_sim_ready_by_adb(self.ad.log, self.ad): 24 raise signals.TestFailure("SIM card is not loaded and ready.") 25 26 def get_imsi(self): 27 self.ad.log.info("Get imsi from netpolicy.xml") 28 try: 29 tmp_imsi = self.ad.adb.shell("cat /data/system/netpolicy.xml") 30 imsi = re.compile(r'(\d{15})').search(tmp_imsi).group(1) 31 return imsi 32 except Exception as e: 33 raise signals.TestFailure("Fail to get imsi : %s" % e) 34 35 def get_iccid(self): 36 iccid = str(get_iccid_by_adb(self.ad)) 37 if not isinstance(iccid, int): 38 self.ad.log.info("Unable to get iccid via adb. Changed to isub.") 39 tmp_iccid = self.ad.adb.shell("dumpsys isub | grep iccid") 40 iccid = re.compile(r'(\d{20})').search(tmp_iccid).group(1) 41 return iccid 42 raise signals.TestFailure("Fail to get iccid") 43 44 def test_gnss_sim_inventory(self): 45 sim_inventory_recipient = "0958787507" 46 self.check_device_status() 47 sms_message = "imsi: %s, iccid: %s, ldap: %s, model: %s, sn: %s" % ( 48 self.get_imsi(), self.get_iccid(), os.getlogin(), self.ad.model, 49 self.ad.serial) 50 self.ad.log.info(sms_message) 51 try: 52 self.ad.log.info("Send SMS by SL4A.") 53 self.ad.droid.smsSendTextMessage(sim_inventory_recipient, 54 sms_message, True) 55 self.ad.ed.pop_event(EventSmsSentSuccess, 10) 56 except Exception as e: 57 raise signals.TestFailure(e) 58