import sys import ControllerClass import DbClass import PingClass import random from time import sleep class doTest: def ping(self,handler): if handler == 'landline': server = PingClass.Ping('sipgate.de') self.serverStatus = server.ping(2) elif handler == 'sip': server = PingClass.Ping('132.230.4.8') self.serverStatus = server.ping(2) elif handler == 'unisip': server = PingClass.Ping('132.230.252.228') self.serverStatus = server.ping(2) elif handler == 'GSMRZ3': server = PingClass.Ping('localhost') self.serverStatus = server.ping(2) elif handler == 'GSMRZ2': server = PingClass.Ping('10.4.58.241') self.serverStatus = server.ping(2) else: self.serverStatus = 1 def initDB(self): self.db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting') self.db.connectDB() self.dbStatus = self.db.connectDB() def initaccount(self,account,handler): if handler == 'sip' or handler == 'unisip' or handler == 'landline': if account[1] != '' or account[2] != '' or account[3] != '' or account[4] != '': # checking available sip account, is there enough information about the account such as username, password,server self.status = 1 else: self.status = 0 else: if account[0] != '' or account[1] != '': self.status = 1 else: self.status = 0 def initTest(self, callFrom, callTo): self.initDB() if self.dbStatus != 0: self.ping(callFrom) if self.serverStatus <> 0: self.ping(callTo) if self.serverStatus <> 0: dest = self.db.deviceAddress(str(callTo)) caller = self.db.deviceAddress(str(callFrom)) self.initaccount(caller,callFrom) if self.status == 1: self.initaccount(dest,callTo) if self.status == 1: callPortName = caller[0] accCaller = caller[2]+':'+caller[3]+':'+caller[4]+':' destPortName = dest[0] destNo = dest[1] accDest = dest[2]+':'+dest[3]+':'+dest[4]+':' makeTest = ControllerClass.doTheTest(callFrom, callPortName, accCaller, callTo, destPortName, destNo, accDest) makeTest.FuncTest() self.result = str(makeTest.testResult) else: self.result = 100 else: self.result = 100 sleep(5) else: self.result = 500 else: self.result = 500 else: self.result = 333 return self.result def isThere(keyword,lists): x = 0 for item in lists: if item == keyword: return 1 else: x = x+1 def smartTest(self): global handlerError smartResultList = list() testPendingList = list() #callerList = ['sip'] destList = ['GSMRZ1','GSMRZ2','GSMRZ3','GSMExt.O2','GSMExt.Voda','GSMExt.Eplus','GSMExt.Tm'] gsmList = ['GSMExt.O2','GSMExt.Voda','GSMExt.Eplus','GSMExt.Tm'] gsmRZList = ['GSMRZ1','GSMRZ2','GSMRZ3'] i = random.randint(0, len(gsmRZList)-1) callTo = gsmRZList[i] self.initTest('unisip',callTo) gsmRZList.remove(callTo) destList.remove(callTo) openBSC = self.result self.smartResultList.append(['unisip', callTo, self.result]) if openBSC == 200: for callFrom in gsmRZList: i = random.randint(3, len(destList)-1) # need to check wheter the caller and dest is same callTo = destList[i] self.initTest(callFrom,callTo) destList.remove(callTo) self.smartResultList.append([callFrom, callTo, self.result]) i = random.randint(0, len(gsmRZList)-1) # callTo = gsmRZList[i] self.initTest('landline',callTo) gsmRZList.remove(callTo) destList.remove(callTo) self.smartResultList.append(['landline', callTo, self.result]) for callTo in destList: callFrom = 'sip' self.initTest(callFrom,callTo) self.smartResultList.append([callFrom, callTo, self.result]) return self.smartResultList