summaryrefslogblamecommitdiffstats
path: root/For Weekly Test/23-07-2011/classController.py
blob: a2c0b20134182e5ec6d25467fe1da01772a15ffc (plain) (tree)
1
2
3
4
5
6
7
8

          
                 




                  


                                                    

                      
 

           
                                         
                              
                              


                                
                              


                              

                              
                              


                     
                           


                

                                             
                                     
 

                                             
                                     
 

                                             
                                     

                     

                                               
                                                                                

                                                                          
                                
 
                                                                       
 


                                          
 

                                                     
                                          
                                                                 
                            
        

                                                             
                                                     
 

                                                             
                                                     
 

                                                             
                                                     
                        
                                     
                                                               
                                                                                                

                                                                                          
                                                
                                        
                                                                                             
                                



                                                          
                                                                     


                                                          
                                                                             
 

                                                                                  
 


                                                                                                   
                                        

                                                                                            
                                                                                     
 

                                                                                          


                                                                                                           



                                                                                                    
 


                                                                             

                                                                        



                                                                     

                                                                        


                                                             
                                                                                                                            
                                                              
                                        
                                                          

                                              
                                                                                                                
                                                     

                                                        

                                             
                                                                                                       
                
                                        

                              
                                     
                                                                                           
 
import sys
import os
import subprocess

import classClient
import classDb
import classPing

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

from time import sleep


class test:

  def __init__(self, orig, dest, destNo):
	self.orig 	= orig
	self.dest 	= dest
	self.destNo 	= destNo
	self.repeatTest	= None
	self.portOrig	= None
	self.portDest	= None
	self.resultOrig	= None
	self.resultDest	= None
	self.testResult	= None
	self.caller	= None
	self.receiver	= None
	self.add	= None

  def FuncTest(self):

	logger.logEvent('')
	
	try:
		
		if self.orig =="gsmBox1":
			self.portOrig = 50095
			self.add = ''

		elif self.orig =="gsmBox2":
			self.portOrig = 50096
			self.add = ''

		elif self.orig =="gsmBox3":
			self.portOrig = 50097
			self.add = ''

		else:
			self.portOrig = '50099'
			self.add = 'localhost'
			command="--command=python sipHandler.py " +self.portOrig
			subprocess.Popen(args=["gnome-terminal", command])

			sleep(3)

		caller = classClient.Connection(self.add,self.portOrig)

		caller.connect()
		message = self.orig+ '|-C'
		caller.sendData(message)

		origHandler = caller.receiveData(60) 
		
		if origHandler == "ready":
			logger.logEvent('Caller handler : Ready')
			try:
	
				if self.dest =="gsmBox1":
					self.portDest = 50102
					self.add = ''

				if self.dest =="gsmBox2":
					self.portDest = 50103
					self.add = ''

				if self.dest =="gsmBox3":
					self.portDest = 50103
					self.add = ''
			
				else:
					self.portDest = '50100'
					command="--command=python sipHandler.py " +self.portDest
					subprocess.Popen(args=["gnome-terminal", command])
		
					sleep(3)
					
				receiver = classClient.Connection('localhost', self.portDest)
				
				receiver.connect()
				message = self.dest+ '|-R'
				receiver.sendData(message)

				destHandler = receiver.receiveData(0)

				if destHandler == "ready":

					caller.sendData("start|"+self.destNo)

					self.resultOrig = caller.receiveData(60)
					self.resultDest = receiver.receiveData(60)

					logger.logEvent('1st Test, Origin :' +self.resultOrig)
					logger.logEvent('1st Test, Destination :' +self.resultDest)
					
					
					if self.resultOrig == 486 or self.resultDest == 486:
						
						caller.sendData("start|"+self.destNo)

						self.resultOrig = caller.receiveData(60)
						self.resultDest = receiver.receiveData(60)

						logger.logEvent('2nd Test, Origin :' +self.resultOrig)
						logger.logEvent('2nd Test, Destination :' +self.resultDest)
	
						if self.resultOrig == 486 or self.resultDest == 486:
							self.testResult = 486
							self.repeatTest = True

						else:
							self.testResult = 200

						caller.sendData('487')
						receiver.sendData('487')

					else: 
						
						self.testResult = 200
						caller.sendData('487')
						receiver.sendData('487')

				else:
					self.testResult = 604
					logger.logEvent('604 General Handler Error: Destination handler no respond timeout')
					caller.sendData('487')
					
				receiver.closeConnection()

			except ValueError:    
				logger.logEvent('601 General Handler Error: Could not open Destination handler')
				self.testResult = 601
				caller.sendData('487')
				caller.closeConnection()
		else:
			self.testResult = 605
			logger.logEvent('605 General Handler Error: Origin handler no respond timeout')
		
		caller.closeConnection()
	
	except ValueError:    
		self.testResult = 602
		logger.logEvent('602 General Handler Error: Could not open Origin handler')