summaryrefslogtreecommitdiffstats
path: root/For Weekly Test/Advance/trueTableClass.py
blob: 3e531940ad555dd1aad707975f5705835ea7e017 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import DbClass

class trueTable:
     def __init__(self, resultsList):

		self.resultsList	= resultsList
		self.outGoingRZ		= None
		self.asteriskServer 	= None
        	self.incomingRZ     	= None
            	self.openBSC    	= None
		self.nanoBTS		= None

     def initDB(self):
    	# function for connect to database
	self.db = DbClass.DBMySQLConnection('root', 'randompasswordSQL', 'localhost', 'gsmselftesting')
        self.db.connectDB()
        self.dbStatus = self.db.connectDB()

     def initTrueTable(self):
	global btsName
	self.initDB()
	deviceLists = self.db.deviceList() #fetch device list from database
	externalRZList = list()

        for devLists in deviceLists: #define category of the external devices
		device = devLists[0]
            	if device[0:5] == 'GSMEx' or device == 'landline':
                	externalRZList.append(device) # fetch into the list
	self.db.closeDBConn()
        lists = self.resultsList
        self.nanoBts = list()
        gsmResultList = list()

        i= 1
        for w in lists:
		call=w[0]
		dest=w[1]

		
        	if call[0:5]=='GSMRZ':
               		if i <= int(call[5:]):
              			i = int(call[5:])
        	if dest[0:5]=='GSMRZ':

               		if i <= int(dest[5:]):
               			i = int(dest[5:])
	i = i+1
        for x in lists: # to find nanoBts, asterik server and open BSC status regarding result test for GSM RZ 
            call=x[0]
            dest=x[1]
            result=x[2]
            stop = False
            j=1
	
	    if call[0:5]=='GSMRZ' or dest[0:5]=='GSMRZ':
            	while stop != True:
                	if j != i:
                    		key = 'GSMRZ'+str(j)
                    		if key == call or key == dest:
					stop = True
					btsName = 'nanoBts '+str(j)
                        		if result == '200':
						btsName = 'nanoBts '+str(j)
                            			self.asteriskServer = True #set status of asterik server as working
                            			if len(self.nanoBts) == 0:
                                			self.nanoBts.append([btsName,True])
                            			else:
                                			found = False
                                			for y in self.nanoBts: #find the existing nanoBts result
                                    				name = y[0]
                                    				if name == btsName:
                                        				found = True
                                			if found != True: #if doesnt found the nanoBts, add the result to the list, otherwise just ignoring 
                                    				self.nanoBts.append([btsName,True])
                                    				found = False
                            			if key == call:#
                                			for z in externalRZList:# find the result for outgoing call from GSM RZ to external RZ network
                                    				if dest == z:
                                        				self.outGoingRZ = True #set status as working for outgoing RZ
                            			if key == dest and call == 'landline':
                                			for z in externalRZList:
                                    				if dest == z:
                                        				self.incomingRZ = True # find the result for imcoming call to GSM RZ from external RZ network
					elif result == '486':
                            			if key == call:# and dest == 'landline':
                                			for z in externalRZList:
                                    				if dest == z:
                                        				self.outGoingRZ = False
                            			if key == dest:# and call == 'landline':
                                			for z in externalRZList:
                                    				if call == z:
                                        				self.incomingRZ = False
                            			self.nanoBts.append([btsName,False])
					if result == '998' and key == dest: # find how to solve this!!!
						devices = 'GSMRZ'+str(j)
						self.nanoBts.append([devices,result])

					if result == '999' and key == call: # find how to solve this!!!
						devices = 'GSMRZ'+str(j)
						self.nanoBts.append([devices,result])
					print ''
                
                
                    		j = j+1
               		elif j == i:
                    		stop = True
    
            if call[0:5]=='GSMEx': # looking for calling from GSMexternal
            		found = False
            		if len(self.nanoBts) ==0:
                		self.nanoBts.append([call,result])
                		found = False
            		else:
                		for y in self.nanoBts: #find the existing result for GSM external in the list
                    			name = y[0]
                    			if name == call:
                        			found = True
                		if found != True:
                    			self.nanoBts.append([call,result])
    
            if dest[0:5]=='GSMEx': # looking for destination call to GSMexternal
            		found = False
            		if len(self.nanoBts) ==0:
                		self.nanoBts.append([dest,result])
                		found = False
            		else:
                		for y in self.nanoBts:
                    			name = y[0]
                    			if name == dest:
                        			found = True
                		if found != True:
                    			self.nanoBts.append([dest,result])