summaryrefslogtreecommitdiffstats
path: root/For Weekly Test/Old/20-07-2011/classController.py
diff options
context:
space:
mode:
Diffstat (limited to 'For Weekly Test/Old/20-07-2011/classController.py')
-rw-r--r--For Weekly Test/Old/20-07-2011/classController.py239
1 files changed, 239 insertions, 0 deletions
diff --git a/For Weekly Test/Old/20-07-2011/classController.py b/For Weekly Test/Old/20-07-2011/classController.py
new file mode 100644
index 0000000..b7e3bff
--- /dev/null
+++ b/For Weekly Test/Old/20-07-2011/classController.py
@@ -0,0 +1,239 @@
+import sys
+import os
+import time
+import MySQLdb
+import subprocess
+import signal
+
+import classClient
+import classDb
+import classPing
+
+from time import sleep
+
+class TimeoutException(Exception):
+ pass
+
+class test:
+
+ def __init__(self, orig, origAdd, dest, destAdd, destNo):
+ self.orig = orig
+ self.origAdd = origAdd
+ self.dest = dest
+ self.destAdd = destAdd
+ self.destNo = destNo
+ self.repeatTest = None
+ self.portOrig = None
+ self.resultOrig = None
+ self.resultDest = None
+ self.testResult = None
+ self.x = None
+ self.y = None
+
+ def FuncTest(self):
+
+ def timeout_handler(signum, frame):
+ raise TimeoutException()
+ print ""
+ print "====================== Preparing Test ======================"
+
+ try:
+
+ if self.dest =="gsmBox1" or self.dest =="gsmBox2":
+
+ if self.dest =="gsmBox1":
+ portOrig = 50095
+
+ if self.dest =="gsmBox2":
+ portOrig = 50096
+
+ print ""
+ print "Connecting to Caller handler"
+ x.connect()
+ x.sendData('be caller')
+
+ else:
+ # open SIP caller handler
+
+ command="--command=python " +self.orig
+ subprocess.Popen(args=["gnome-terminal", command])
+
+ sleep(5)
+
+ if self.orig=="sipCall.py":
+ self.portOrig = 50097
+
+ if self.orig == "landlineCall.py":
+ self.portOrig = 50099
+
+ if self.orig == "LocalSIPCall.py":
+ self.portOrig = 50100
+
+
+ x = classClient.Connection(self.origAdd,self.portOrig)
+ print ""
+ print "Connecting to Caller handler"
+ x.connect()
+
+ # wait respond from origin handler
+ signal.signal(signal.SIGALRM, timeout_handler)
+ signal.alarm(60)
+
+ while 1:
+ try:
+ origHandler = x.receiveData(0)
+ if origHandler <> "":
+ break
+
+ except TimeoutException:
+ origHandler = "failed"
+ break
+
+
+ if origHandler == "ready":
+ print "Caller handler : Ready"
+ print ""
+ try:
+ if self.dest =="gsmBox1" or self.dest =="gsmBox2":
+
+ if self.dest =="gsmBox1":
+ self.portDest = 50102
+
+ if self.dest =="gsmBox2":
+ self.portDest = 50103
+
+ y = classClient.Connection(self.destAdd, self.portDest)
+ print "Connecting to Receiver handler"
+ y.connect()
+ y.sendData('receiver')
+
+ else:
+ command="--command=python " +self.dest
+ subprocess.Popen(args=["gnome-terminal", command])
+
+ sleep(2)
+
+ if self.dest=="SIPReceiver.py":
+ self.portDest = 50104
+
+ if self.dest == "landlineReceiver.py":
+ self.portDest = 50106
+
+ if self.dest == "localsipReceiver.py":
+ self.portDest = 50107
+
+ y = classClient.Connection(self.destAdd, self.portDest)
+ print "Connecting to Receiver handler"
+ y.connect()
+
+
+ signal.signal(signal.SIGALRM, timeout_handler)
+ signal.alarm(60)
+
+ while 1:
+ try:
+ destHandler = y.receiveData(0)
+ if destHandler <> "":
+ break
+
+ except TimeoutException:
+ destHandler = "failed"
+ break
+
+ if destHandler == "ready":
+
+ print "Receiver handler : Ready"
+
+ x.sendData("start|"+self.destNo)#send message to handler to start the call
+
+
+ signal.signal(signal.SIGALRM, timeout_handler)
+ signal.alarm(120)
+
+ print ""
+ print "------------ Test Result ------------"
+ print ""
+
+ while 1:
+ try:
+ sleep(0.5)
+ self.resultOrig = x.receiveData(0)
+ self.resultDest = y.receiveData(0)
+
+ if self.resultOrig <> "" and self.resultDest <> "":
+ break
+
+ except TimeoutException:
+ self.resultOrig = 486
+ self.resultDest = 486
+ break
+
+ #if failed, tell everybody to try one more time
+ if self.resultOrig == 486 or self.resultDest == 486:
+
+ x.sendData("start|"+self.destNo)
+
+ signal.signal(signal.SIGALRM, timeout_handler)
+ signal.alarm(120)
+
+ while 1:
+ try:
+ sleep(0.5)
+ self.resultOrig = x.receiveData(0)
+ self.resultDest = y.receiveData(0)
+
+ if self.resultOrig <> "" and self.resultDest <> "":
+ print "here"
+ break
+
+ except TimeoutException:
+ self.resultOrig = 486
+ self.resultDest = 486
+ break
+
+ #if still failed, we make automatic test vice versa
+
+ if self.resultOrig == 486 or self.resultDest == 486:
+ self.testResult = 486
+ self.repeatTest = True
+
+ print "Second test result origin: ", self.resultOrig
+ print "Second test result Destination: ", self.resultDest
+ else:
+ self.testResult = 200
+
+ print "Second test result origin: ", self.resultOrig
+ print "Second test result Destination: ", self.resultDest
+ x.sendData('487')
+ y.sendData('487')
+
+ else:
+
+ self.testResult = 200
+
+ print "Test Result origin: ", self.resultOrig
+ print "Test Result Destination: ", self.resultDest
+ x.sendData('487')
+ y.sendData('487')
+
+ else:
+ self.testResult = 604
+ print "604 General Handler Error: Destination handler no respond"
+ #tell Caller handler to terminate because receiver doesnt work
+ x.sendData('487')
+
+ y.closeConnection()
+
+ except ValueError:
+ print "601 General Handler Error: Could not open Destination handler"
+ self.testResult = 601
+ else:
+ self.testResult = 605
+ print "605 General Handler Error: Origin handler no respond"
+
+ x.closeConnection()
+
+ except ValueError:
+ testResult = 602
+ print "602 General Handler Error: Could not open Origin handler"
+