summaryrefslogblamecommitdiffstats
path: root/For Weekly Test/19-08-2011/ControllerClass.py
blob: ff82814361e05d2cb02060e0887b426ceb15a558 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                   
                
 
                                                                                           













                                                   
                                                 









                                              
                        











                                                                                
                                        





































                                                                                                                                    

                                                               























                                                                                  
                                            



                                                                   
                                              

                                               
                                              

                                               
                                                 



                                                                   
                                                   



                                                                   
                                                 
                                               
                                                        

                                                                   
                                                    











                                                                                                                                              
                                        



                                                                 
                                          

                                             
                                          

                                             
                                             



                                                                 
                                               



                                                                 
                                             
                                             
                                                        

                                                                 
                                                
















































                                                                                                                                          
import sys
import os
import subprocess

import ClientClass

import LogFileClass
logger = LogFileClass.Logging('TestProcessLog.log')

from time import sleep


class doTheTest:

	def __init__(self, callFrom, callAdd, accCaller, callTo, destAdd, destNo, accDest):
	
		self.callFrom 		= callFrom
		self.dest 		= callTo
		self.destNo 		= destNo
		self.accDest		= accDest
		self.accCaller		= accCaller
		self.repeatTest		= None
		self.portAdd		= None
		self.portCaller		= None
		self.portDest		= None
		self.resultCaller	= None
		self.resultDest		= None
		self.testResult		= None
		self.callAdd		= callAdd
		self.recAdd		= destAdd
		self.receiver		= None
		self.caller		= None
		self.connected 		= None
  

	def FuncTest(self):

		logger.logEvent('')
		
		self.initCaller()
		sleep(2)

		self.callerGreeting()

		if self.connected == 'OK':
		
			self.caller.sendData('CALLER|'+self.destNo)
			callerHandler = self.caller.receiveData(15) 
		
			if callerHandler == "CALLER READY":
				logger.logEvent('Caller handler : Ready')
				
				self.initReceiver()				
				sleep(2)
				self.receiverGreeting()	
				
				if self.connected == 'OK':	
			
					self.receiver.sendData('RECEIVER')
					destHandler = self.receiver.receiveData(15)
	
					if destHandler == 'RECEIVER READY':
						logger.logEvent('Receiver handler : Ready')

						self.startCall()
						self.waitingFeedback()

					else:
						self.testResult = 604
						logger.logEvent('604 General Handler Error: Destination handler no respond timeout')
						self.caller.sendData('TERMINATE CONNECTION')				
						self.receiver.closeConnection()
	
				else:    
					logger.logEvent('998 General Handler Error: Could not connect Destination handler')
					self.testResult = 998
					self.caller.sendData('TERMINATE CONNECTION')
					self.caller.closeConnection()
			else:
				self.testResult = 605
				logger.logEvent('605 General Handler Error: caller handler no respond timeout')
		
			self.caller.closeConnection()
	
		else:    
			self.testResult = 999
			logger.logEvent('999 General Handler Error: Could not connect to Caller handler')



	def waitingFeedback(self):
		logger.logEvent('Waiting Feedback')
		self.resultCaller = self.caller.receiveData(15)
		self.resultDest = self.receiver.receiveData(15)
						
		if self.resultCaller <> 'CALL OK' or self.resultDest <> 'CALL OK':

			logger.logEvent('Test Failed')
			self.testResult = 486
			self.repeatTest = True
			self.initTerminate()
		
		else:
			logger.logEvent('Test Succeed')
			self.testResult = 200
			self.initTerminate()
	

	def startCall(self):
		logger.logEvent('Start Call')
		self.receiver.sendData('RECEIVE START')
		self.caller.sendData('CALL START')
		

	def initCaller(self):
		logger.logEvent('init Caller')
		logger.logEvent(self.callFrom)

		if self.callFrom =="GSMRZ1":
			self.portCaller = 50007
			self.portAdd	= ''
			self.initGSM(self.portCaller, self.portAdd)

		elif self.callFrom =="GSMRZ2":
			self.portCaller = 50008

		elif self.callFrom =="GSMRZ3":
			self.portCaller = 50009

		elif self.callFrom =="GSMExt.O2":
			self.portCaller = 50010
			self.portAdd	= '/dev/ttyUSB0'
			self.initGSM(self.portCaller, self.portAdd)

		elif self.callFrom =="GSMExt.Voda":
			self.portCaller = 50011
			self.portAdd	= '/dev/ttyUSB1'
			self.initGSM(self.portCaller, self.portAdd)

		elif self.callFrom =="GSMExt.Tm":
			self.portCaller = 50012
			self.portAdd	= '/dev/ttyUSB3'
			self.initGSM(self.portCaller, self.portAdd)

		elif self.callFrom =="GSMExt.Eplus":
			self.portCaller = 50013
			self.portAdd	= '/dev/ttyUSB2'
			self.initGSM(self.portCaller, self.portAdd)

		else:
			self.portCaller = 50099
			subprocess.Popen(args=["gnome-terminal", '--command=python SIPHandler.py '+self.accCaller+ ' ' +str(self.portCaller)])

	def initReceiver(self):
		logger.logEvent('init Receiver')
		logger.logEvent(self.dest)

		if self.dest =="GSMRZ1":
			self.portDest = 50007
			self.portAdd	= ''
			self.initGSM(self.portDest, self.portAdd)

		elif self.dest =="GSMRZ2":
			self.portDest = 50008

		elif self.dest =="GSMRZ3":
			self.portDest = 50009

		elif self.dest =="GSMExt.O2":
			self.portDest = 50010
			self.portAdd	= '/dev/ttyUSB0'
			self.initGSM(self.portDest, self.portAdd)

		elif self.dest =="GSMExt.Voda":
			self.portDest = 50011
			self.portAdd	= '/dev/ttyUSB1'
			self.initGSM(self.portDest, self.portAdd)

		elif self.dest =="GSMExt.Tm":
			self.portDest = 50012
			self.portAdd	= '/dev/ttyUSB3'
			self.initGSM(self.portDest, self.portAdd)

		elif self.dest =="GSMExt.Eplus":
			self.portDest = 50013
			self.portAdd	= '/dev/ttyUSB2'
			self.initGSM(self.portDest, self.portAdd)
			
		else:
			self.portDest = 50100
			subprocess.Popen(args=['gnome-terminal', '--command=python SIPHandler.py '+self.accDest+ ' ' +str(self.portDest)])

	def initTerminate(self):
		self.caller.sendData('TERMINATE CONNECTION')
		self.receiver.sendData('TERMINATE CONNECTION')

	def callerGreeting(self):
		self.connected 	= None
		self.caller = ClientClass.Connection(self.callAdd,self.portCaller)
		self.caller.connect()

		if self.caller.connected == 1:
			logger.logEvent('Connected to Caller Handler')
			self.caller.sendData('HELLO HANDLER')
			if self.caller.receiveData(15) == 'HELLO CONTROLLER':
				logger.logEvent('Caller Handler respond')
				self.connected = 'OK'
		else:
			logger.logEvent('Cannt connect to Caller')
			self.connected = 'NOT OK'

	def receiverGreeting(self):
		self.connected 	= None
		self.receiver = ClientClass.Connection(self.recAdd, self.portDest)
		self.receiver.connect()

		if self.receiver.connected == 1:
			logger.logEvent('Connected to Receiver Handler')
			self.receiver.sendData('HELLO HANDLER')
			if self.receiver.receiveData(15) == 'HELLO CONTROLLER':
				logger.logEvent('Receiver Handler respond')
				self.connected = 'OK'
		else:
			logger.logEvent('Cannt connect to Receiver')
			self.connected = 'NOT OK'

	def initGSM(self, portCommunication, portDevice):

		subprocess.Popen(args=["gnome-terminal", '--command=python GSMHandler.py '+str(portCommunication)+ ' ' +str(portDevice)])