summaryrefslogtreecommitdiffstats
path: root/Under-Testing/Server-Code-New/truthtableClass.py
diff options
context:
space:
mode:
authorgsmselftest2011-11-16 18:06:02 +0100
committergsmselftest2011-11-16 18:06:02 +0100
commit8a7755d6f96e599fe75ac8e5e1c6994138f4b99e (patch)
tree9b320feb695cfbadd605808b2db5795e240e9399 /Under-Testing/Server-Code-New/truthtableClass.py
parent delete dummy comment (diff)
downloadgsm-selftest-8a7755d6f96e599fe75ac8e5e1c6994138f4b99e.tar.gz
gsm-selftest-8a7755d6f96e599fe75ac8e5e1c6994138f4b99e.tar.xz
gsm-selftest-8a7755d6f96e599fe75ac8e5e1c6994138f4b99e.zip
under Testing folder
Diffstat (limited to 'Under-Testing/Server-Code-New/truthtableClass.py')
-rw-r--r--Under-Testing/Server-Code-New/truthtableClass.py191
1 files changed, 191 insertions, 0 deletions
diff --git a/Under-Testing/Server-Code-New/truthtableClass.py b/Under-Testing/Server-Code-New/truthtableClass.py
new file mode 100644
index 0000000..253069b
--- /dev/null
+++ b/Under-Testing/Server-Code-New/truthtableClass.py
@@ -0,0 +1,191 @@
+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
+ self.testMount = len(resultsList)
+ self.OK = 0
+ self.FAILED = 0
+ self.handlerError = 0
+
+ def initDB(self):
+ # function for connect to database
+ self.db = DbClass.DBMySQLConnection()
+ self.db.connectDB()
+ self.dbStatus = self.db.connectDB()
+
+ def lookingBTSname(self, btsname):
+ if len(self.nanoBts) == 0:
+ self.found = False
+ else:
+ found = False
+ for y in self.nanoBts: #find the existing nanoBts result
+ name = y[0]
+ if name == btsName:
+ self.found = True
+ return self.found
+
+ 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()
+
+ for status in lists:
+
+ if int(status[2]) == 200:
+ self.OK = self.OK+1
+ elif int(status[2]) == 486:
+ self.FAILED = self.FAILED+1
+ else:
+ self.handlerError = self.handlerError+1
+ 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:
+
+ btsName = 'nanoBts '+str(j)
+ if result == '200':
+
+ btsName = 'nanoBts '+str(j)
+ self.asteriskServer = True #set status of asterik server as working
+ self.lookingBTSname(btsName)
+ if self.found != True:
+ #if doesnt found the nanoBts, add the result to the list, otherwise just ignoring
+ try:
+ self.nanoBts.remove(btsName)
+ except ValueError:
+ message = 'Error'
+
+ self.nanoBts.append([btsName,True])
+
+ 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:
+ for z in externalRZList:
+ if call == z:
+ self.incomingRZ = True # find the result for imcoming call to GSM RZ from external RZ network
+ elif result == '486':
+ found = False
+ if key == call:
+ for z in externalRZList:
+ if dest == z and self.outGoingRZ != True:
+ self.outGoingRZ = False
+ if key == dest:
+ for z in externalRZList:
+ if call == z and self.incomingRZ != True:
+ self.incomingRZ = False
+ if self.nanoBts == '':
+ self.nanoBts.append([btsName,False])
+ for y in self.nanoBts: #find the existing nanoBts result
+ name = y[0]
+ if name == btsName and y[1] == True:
+ found = True
+ if found != True:
+ self.nanoBts.append([btsName,False])
+
+ elif str(result) == '801' and key == call:
+ self.lookingBTSname(key)
+ if self.found != True:
+ self.nanoBts.append([key,result])
+
+ elif str(result) == '802'and key == dest:
+ self.lookingBTSname(key)
+ if self.found != True:
+ self.nanoBts.append([key,result])
+
+ if str(result) == '998' and key == dest:
+ self.lookingBTSname(key)
+ if self.found != True:
+ self.nanoBts.append([key,result])
+
+ if str(result) == '999' and key == call:
+ self.lookingBTSname(key)
+ if self.found != True:
+ self.nanoBts.append([key,result])
+ 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:
+ if int(result) == 200:
+ if int(y[1]) == 486 or int(y[1]) == 999 or int(y[1]) == 998 or int(y[1]) == 801:
+ self.nanoBts.remove(y)
+ else:
+ 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:
+ if int(result) == 200:
+ if int(y[1]) == 486 or int(y[1]) == 999 or int(y[1]) == 998 or int(y[1]) == 402 or int(y[1]) == 802:
+ self.nanoBts.remove(y)
+ else:
+ found = True
+ if found != True:
+ self.nanoBts.append([dest,result])
+
+
+ for device in externalRZList:
+ if device == dest and int(result) == 200:
+ self.outGoingRZ = True
+
+