#! /usr/bin/env python import sys import ControllerClass import DbClass import PingClass import DeviceAddress from time import sleep def ping(handler): global serverStatus if handler == 'landline': server = PingClass.Ping('sipgate.de') serverStatus = server.ping(3) elif handler == 'sip': server = PingClass.Ping('132.230.4.8') serverStatus = server.ping(3) elif handler == 'unisip': server = PingClass.Ping('132.230.252.228') serverStatus = server.ping(3) elif handler == 'gsmr1': server = PingClass.Ping('localhost') serverStatus = server.ping(3) elif handler == 'gsmr2': server = PingClass.Ping('132.230.4.64') serverStatus = server.ping(3) def doTest(callFrom,callTo): global testResult ping(callFrom) device = DeviceAddress.DeviceAddress() if serverStatus <> 0: ping(callTo) if serverStatus <> 0: device.findDevice(callTo) recAdd = device.add destNo = str(device.num) device.findDevice(callFrom) callAdd = device.add print '\n' print "Caller: ", callFrom print 'Destination: ', callTo makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo) makeTest.FuncTest() #db.addResult(taskID, makeTest.testResult) if makeTest.repeatTest == True: testRepeat = True print "Result :", makeTest.testResult #db.deleteTempTask(taskID) #db.tasksList.remove(item) #db.tasksList.insert(i,'') sleep(3) else: print "[failed] 500 "+callTo+ " Server Internal Error" else: print "[failed] 500 "+callFrom+ " Server Internal Error" def doSipTest(): print '--SIP Part Test--' destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE'] #destList = ['unisip'] for callTo in destList: callFrom = 'sip' if callFrom <> callTo: doTest(callFrom, callTo) def doLandlineTest(): print '--Landline Part Test--' destList = ['gsmr1', 'gsmr2', 'gsmr3', 'sip'] for callTo in destList: callFrom = 'landline' doTest(callFrom, callTo) def doGsmrzTest(): print '--GSM Part Test--' destList = ['sip', 'gsmr1','gsmr2', 'gsmr3', 'landline', 'unisip', 'gsmeO', 'gsmeV', 'gsmeT', 'gsmeE'] calllist = ['gsmr1','gsmr2', 'gsmr3'] for callFrom in calllist: for callTo in destList: if callTo <> callFrom: doTest(callFrom, callTo) doGsmExtTest() def doGsmExtTest(): destList = ['sip', 'gsmr1','gsmr2', 'gsmr3'] for callTo in destList: callFrom = 'gsmeO' doTest(callFrom, callTo) callFrom = 'gsmeV' doTest(callFrom, callTo) callFrom = 'gsmeT' doTest(callFrom, callTo) callFrom = 'gsmeE' doTest(callFrom, callTo) def doAllTest(): doSipTest() doLandlineTest() doGsmTest() if len(sys.argv) > 1: command = sys.argv[1] print '\n' if command == '--all': doAllTest() elif command == '--sip': doSipTest() elif command == '--gsm': doGsmTest() elif command == '--landline': doLandlineTest() elif command == '--help': file = open('help.txt', 'r') print file.read() else: print "command not found, Type '--help', '--copyright', '--credits' or '--license' for more information." print '\n' else: print '\n' db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting') db.connectDB() dbStatus = db.connectDB() if dbStatus == 1: if db.anyTasksToDo() == 1: allPing() i=0 for item in db.tasksList: taskID = item[0] taskNo = item[1] callFrom = item[2] callTo = item[3] destination = db.deviceAddress(str(callTo)) caller = db.deviceAddress(str(callFrom)) callAdd = caller[0] recAdd = destination[0] destNo = destination[1] #if i == 0: # db.updatePingResult(taskNo, sipServer, sipGate, sipLoc, gsmBox1, gsmBox2) if callFrom == 'unisip': destNo = destNo[7:] print '\n' print "Task ID: ", taskID print "Calling From: ", callFrom print "To: ", callTo print "number: ", destNo ping(callFrom) if serverStatus <> 0: ping(callTo) if serverStatus <> 0: makeTest = ControllerClass.test(callFrom, callAdd, callTo, recAdd, destNo) makeTest.FuncTest() db.addResult(taskID, makeTest.testResult) if makeTest.repeatTest == True: db.insertTaskIn2(callTo,callFrom,taskNo) print "Result :", makeTest.testResult db.deleteTempTask(taskID) db.tasksList.remove(item) db.tasksList.insert(i,'') i = i+1 sleep(3) else: print "[failed] 500 "+callTo+ " Server Internal Error" else: print "[failed] 500 "+callFrom+ " Server Internal Error" db.cleanTasksList() else: print "No job at all" else: sys.exit(5) def allPing(): global sipGate global sipServer global sipLoc global gsmBox1 global gsmBox2 server = PingClass.Ping('sipgate.de') sipGate = server.ping(3) server = PingClass.Ping('132.230.4.8') sipServer = server.ping(3) server = PingClass.Ping('132.230.252.228') sipLoc = server.ping(3) server = PingClass.Ping('localhost') gsmBox1 = server.ping(3) server = PingClass.Ping('132.230.4.64') gsmBox2 = server.ping(3)