Commit 9dc63506 authored by hardy's avatar hardy

updating python to read ue commands dictionary

parent 9d41b2ad
......@@ -33,14 +33,16 @@ import logging
import sshconnection
#time.sleep
import time
#to load cots_ue dictionary
import yaml
class CotsUe:
def __init__(self,model,UEIPAddr,UEUserName,UEPassWord):
self.model = model
self.UEIPAddr = UEIPAddr
self.UEUserName = UEUserName
self.UEPassWord = UEPassWord
self.runargs = '' #on of off to toggle airplane mode on/off
def __init__(self,ADBIPAddr,ADBUserName,ADBPassWord):
self.cots_id = '' #cots id from yaml oppo, s10 etc...
self.ADBIPAddr = ADBIPAddr
self.ADBUserName = ADBUserName
self.ADBPassWord = ADBPassWord
self.cots_run_mode = '' #on of off to toggle airplane mode on/off
self.__SetAirplaneRetry = 3
#-----------------$
......@@ -49,39 +51,45 @@ class CotsUe:
def Check_Airplane(self):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.UEIPAddr, self.UEUserName, self.UEPassWord)
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
status=mySSH.cde_check_value('sudo adb shell settings get global airplane_mode_on ', ['0','1'],5)
mySSH.close()
return status
def Set_Airplane(self,target_state_str):
mySSH = sshconnection.SSHConnection()
mySSH.open(self.UEIPAddr, self.UEUserName, self.UEPassWord)
mySSH.command('sudo adb start-server','$',5)
logging.info("Toggling COTS UE Airplane mode to : "+target_state_str)
current_state = self.Check_Airplane()
if target_state_str.lower()=="on":
target_state=1
else:
target_state=0
if current_state != target_state:
#toggle state
retry = 0
while (current_state!=target_state) and (retry < self.__SetAirplaneRetry):
mySSH.command('sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS', '\$', 5)
mySSH.command('sudo adb shell input keyevent 20', '\$', 5)
mySSH.command('sudo adb shell input tap 968 324', '\$', 5)
time.sleep(1)
current_state = self.Check_Airplane()
retry+=1
def Set_Airplane(self, target_id, target_state_str):
#load cots commands dictionary
with open('cots_ue_ctl.yaml','r') as file:
cots_ue_ctl = yaml.load(file,Loader=yaml.FullLoader)
if target_id in cots_ue_ctl:
mySSH = sshconnection.SSHConnection()
mySSH.open(self.ADBIPAddr, self.ADBUserName, self.ADBPassWord)
mySSH.command('sudo adb start-server','$',5)
logging.info("Toggling COTS UE Airplane mode to : "+target_state_str)
current_state = self.Check_Airplane()
if target_state_str.lower()=="on":
target_state=1
else:
target_state=0
if current_state != target_state:
logging.error("ATTENTION : Could not toggle to : "+target_state_str)
logging.error("Current state is : "+ str(current_state))
#toggle state
retry = 0
while (current_state!=target_state) and (retry < self.__SetAirplaneRetry):
#loop over the command list from dictionary for the selected ue, to switch to required state
for i in range (0,len(cots_ue_ctl[target_id])):
mySSH.command(cots_ue_ctl[target_id][i], '\$', 5)
time.sleep(1)
current_state = self.Check_Airplane()
retry+=1
if current_state != target_state:
logging.error("ATTENTION : Could not toggle to : "+target_state_str)
logging.error("Current state is : "+ str(current_state))
else:
print("Airplane mode is already "+ target_state_str)
mySSH.command('sudo adb kill-server','$',5)
mySSH.close()
else:
print("Airplane mode is already "+ target_state_str)
mySSH.command('sudo adb kill-server','$',5)
mySSH.close()
logging.error("COTS UE Id from XML could not be found in UE YAML dictionary cots_ue_ctl.yaml)
......
oppo:
- sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- sudo adb shell input keyevent 20
- sudo adb shell input tap 968 324
s10:
- sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- sudo adb shell input keyevent 20
- sudo adb shell input tap 968 324
s20:
- sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- sudo adb shell input keyevent 20
- sudo adb shell input tap 968 324
xperia:
- sudo adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
- sudo adb shell input keyevent 20
- sudo adb shell input tap 968 324
......@@ -3295,7 +3295,8 @@ def GetParametersFromXML(action):
ldpc.runargs = test.findtext('physim_run_args')
if action == 'COTS_UE_Airplane':
COTS_UE.runargs = test.findtext('cots_ue_airplane_args')
COTS_UE.cots_id = test.findtext('cots_id')
COTS_UE.cots_run_mode = test.findtext('cots_run_mode')
#check if given test is in list
#it is in list if one of the strings in 'list' is at the beginning of 'test'
......@@ -3323,8 +3324,6 @@ import yaml
xml_class_list_file=''
if (os.path.isfile('xml_class_list.yml')):
xml_class_list_file='xml_class_list.yml'
if (os.path.isfile('ci-scripts/xml_class_list.yml')):
xml_class_list_file='ci-scripts/xml_class_list.yml'
with open(xml_class_list_file,'r') as file:
# The FullLoader parameter handles the conversion from YAML
# scalar values to Python the dictionary format
......@@ -3375,8 +3374,9 @@ if py_param_file_present == True:
#-----------------------------------------------------------
# COTS UE instanciation
#-----------------------------------------------------------
#COTS_UE instanciation can only be done here for the moment, due to code architecture
COTS_UE=cls_cots_ue.CotsUe('oppo', CiTestObj.UEIPAddress, CiTestObj.UEUserName,CiTestObj.UEPassword)
#COTS_UE instanciation and ADB server init
#ue id and ue mode are retrieved from xml
COTS_UE=cls_cots_ue.CotsUe(CiTestObj.ADBIPAddress, CiTestObj.ADBUserName,CiTestObj.ADBPassword)
#-----------------------------------------------------------
......@@ -3689,7 +3689,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
elif action == 'Run_PhySim':
HTML=ldpc.Run_PhySim(HTML,CONST,id)
elif action == 'COTS_UE_Airplane':
COTS_UE.Set_Airplane(COTS_UE.runargs)
#cots id and cots run mode were read from xml test file
COTS_UE.Set_Airplane(COTS_UE.cots_id, COTS_UE.cots_run_mode)
else:
sys.exit('Invalid class (action) from xml')
CiTestObj.FailReportCnt += 1
......
......@@ -32,7 +32,8 @@
<testCase id="010000">
<class>COTS_UE_Airplane</class>
<desc>Toggle COTS Airplane mode ON</desc>
<cots_ue_airplane_args>ON</cots_ue_airplane_args>
<cots_id>oppo</cots_id>
<cots_run_mode>ON</cots_run_mode>
</testCase>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment