def phone_setup_csfb_for_subscription(log, ad, sub_id): """Setup phone for CSFB call test for subscription id. Setup Phone to be in 4G mode. Disabled VoLTE. Args: log: log object ad: Android device object. sub_id: subscription id. Returns: True if setup successfully. False for errors. """ if not phone_setup_4g_for_subscription(log, ad, sub_id): log.error("{} failed to set to 4G data.".format(ad.serial)) return False if ad.droid.imsIsEnhanced4gLteModeSettingEnabledByPlatform(): toggle_volte(log, ad, False) if not ensure_network_generation_for_subscription( log, ad, sub_id, GEN_4G, voice_or_data=NETWORK_SERVICE_DATA): return False if not wait_for_voice_attach_for_subscription(log, ad, sub_id, MAX_WAIT_TIME_NW_SELECTION): return False return phone_idle_csfb_for_subscription(log, ad, sub_id)
def droid_has_phone(log, ad): #check for sim and service subInfo = ad.droid.subscriptionGetAllSubInfoList() if not subInfo or len(subInfo) < 1: return False toggle_airplane_mode(log, ad, False) sub_id = ad.droid.subscriptionGetDefaultVoiceSubId() if not wait_for_voice_attach_for_subscription( log, ad, sub_id, MAX_WAIT_TIME_NW_SELECTION): log.error("{} didn't find a cell network".format(ad.serial)) return False return True
def phone_setup_voice_2g_for_subscription(log, ad, sub_id): """Setup phone voice to 2G for subscription id. Args: log: log object ad: Android device object. sub_id: subscription id. Returns: True if setup successfully. False for errors. """ if not phone_setup_2g_for_subscription(log, ad, sub_id): log.error("{} failed to set to 2G data.".format(ad.serial)) return False if not wait_for_voice_attach_for_subscription(log, ad, sub_id, MAX_WAIT_TIME_NW_SELECTION): return False return phone_idle_2g_for_subscription(log, ad, sub_id)
def phone_setup_voice_general_for_subscription(log, ad, sub_id): """Setup phone for voice general call test for subscription id. Make sure phone attached to voice. Make necessary delay. Args: ad: Android device object. sub_id: subscription id. Returns: True if setup successfully. False for errors. """ toggle_airplane_mode(log, ad, False) if not wait_for_voice_attach_for_subscription(log, ad, sub_id, MAX_WAIT_TIME_NW_SELECTION): # if phone can not attach voice, try phone_setup_voice_3g return phone_setup_voice_3g_for_subscription(log, ad, sub_id) return True
def test_pre_flight_check(self): for ad in self.android_devices: #check for sim and service subInfo = ad.droid.subscriptionGetAllSubInfoList() if not subInfo or len(subInfo) < 1: self._preflight_fail( "{}: Unable to find A valid subscription!".format( ad.serial)) toggle_airplane_mode(self.log, ad, False, strict_checking=False) if ad.droid.subscriptionGetDefaultDataSubId() <= INVALID_SUB_ID: self._preflight_fail("{}: No Default Data Sub ID".format( ad.serial)) elif ad.droid.subscriptionGetDefaultVoiceSubId() <= INVALID_SUB_ID: self._preflight_fail("{}: No Valid Voice Sub ID".format( ad.serial)) sub_id = ad.droid.subscriptionGetDefaultVoiceSubId() if not wait_for_voice_attach_for_subscription( self.log, ad, sub_id, MAX_WAIT_TIME_NW_SELECTION): self._preflight_fail( "{}: Did Not Attach For Voice Services".format(ad.serial)) return True