-
Notifications
You must be signed in to change notification settings - Fork 0
/
managerTest.py
253 lines (237 loc) · 10.9 KB
/
managerTest.py
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
#!/usr/bin/env python
from DBManager import DBManager, SessionError, NodeError, ContactError
import argparse
parser = argparse.ArgumentParser()
#-s SESSIONNAME DAYS to create a new session for DAYS days
parser.add_argument("-s", "--session", help="create a new session for days", nargs=2, metavar=('passphrase', 'days'))
#-a SESSIONNAME to archive a session
parser.add_argument("-a", "--archive", help="archive a session", metavar='passphrase')
#-n DEVID to create a new node
parser.add_argument("-n", "--node", help="create a new node", metavar='deviceID')
#-d DEVID to delete a node
parser.add_argument("-d", "--delete", help="delete a node", metavar='deviceID')
#-u DEVID SESSIONNAME to activate a node
parser.add_argument("-u", "--activate", help="add a node to a session", nargs=2, metavar=('deviceID', 'passphrase'))
#-f DEVID to free a node
parser.add_argument("-f", "--free", help="free a node", metavar='deviceID')
#-S to list all active sessions
parser.add_argument("-S", "--SESSIONS", help="list all active sessions", action="store_true")
#-N to list all nodes and include [SESSIONNAME] to list all nodes in a session
parser.add_argument("-N", "--NODES", help="list all nodes in a session, use 0 for a list of all nodes", metavar='passphrase')
args = parser.parse_args()
db = DBManager()
if args.session != None:
#create a new session
db.createSession(args.session[0], int(args.session[1]))
print "Created session with passphrase: " + args.session[0] + " for " + args.session[1] + " days"
elif args.archive != None:
#archive session
db.deleteSession(args.archive)
print "Deleted session with passphrase: " + args.archive
elif args.node != None:
#create a new node
db.createNode(args.node)
print "Created node with device ID: " + args.node
elif args.delete != None:
#delete a node
db.deleteNode(args.delete)
print "Deleted node with device ID: " + args.delete
elif args.activate != None:
#activate a node
db.activateNode(args.activate[0], args.activate[1])
print "Added node with device ID: " + args.activate[0] + " to session with passphrase: " + args.activate[1]
elif args.free != None:
#free a node
db.freeNode(args.free)
print "Freed node with device ID: " + args.free
elif args.SESSIONS == True:
#list all sessions
print "\t-----Session List-----"
sessions = db.getSessions()
for session in sessions:
print session
elif args.NODES != None:
#list nodes
if args.NODES == '0':
print "\t-----Node List-----"
nodes = db.getNodes()
else:
print "\t-----Node List in Session : %s-----" % args.NODES
nodes = db.getNodes(args.NODES)
for node in nodes:
print node
else:
#------------------------------------------TESTING CODE---------------------------------------------------#
ses = 'testsession'
dev1 = 'testdevx'
dev2 = 'testdevy'
dev3 = 'testdevz'
dev4 = 'testdevu'
cont1 = {'fName':'testfName', 'lName':'testlName', 'email':'test@email.com', 'sms':'18453384705'}
badfName = 'bad1234'
badlName = 'bad5678'
bademail = 'email@@..1'
badsms = '87asd123'
#---------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------#
print "(========)Testing all DB managing functions(========)"
#---------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------#
print "(========)SESSION FUNCTION TESTS(========)"
#---------------------------------------------------------------------------------------------------------#
print "(=) Creating a new session called '%s'" % ses
try:
db.createSession(ses)
except SessionError as se:
print "\t(-) Failed to create session! Already Exists"
print "\t(+) Session created!"
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing Failure of createSession function"
try:
db.createSession(ses)
print "\t(-) Failure of createSession Test Failed"
except SessionError as se:
print "\t(+) Failure of createSession Test Passed. Error Caught:", se.msg
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing Failure of getSession function"
try:
db.getSession('invalidphrase')
print "\t(-) Failure of getSession Test Failed"
except SessionError as se:
print "\t(+) Failure of getSession Test Passed. Error Caught:", se.msg
#---------------------------------------------------------------------------------------------------------#
print "(=) Setting period of %s to 1 day." % ses
db.setSessionPeriod(ses, 1)
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing Failure of setSessionPeriod function"
try:
db.setSessionPeriod(ses, 'invalid duration')
print "\t(-) Failure of setSessionPeriod Test Failed"
except ValueError as ve:
print "\t(+) Failure of setSessionPeriod Test Passed. Error Caught:", ve
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing getSessions function"
print "(=) List of all sessions"
db.printSessions()
#---------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------#
print "(========)NODE FUNCTION TESTS(========)"
#---------------------------------------------------------------------------------------------------------#
print "(=) Creating nodes"
d1 = db.createNode(dev1)
d2 = db.createNode(dev2)
d3 = db.createNode(dev3);
if d1 == -1 or d2 == -1 or d3 == -1:
print "\t(-) Node Creation failed."
else:
print "\t(+) Nodes created."
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing displayNodes function"
print "(=) List of all nodes"
db.printNodes()
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing creation of existing node"
try:
dx = db.createNode(dev1)
print "\t(-) Existing Node Creation Test Failed."
except:
print "\t(+) Existing Node Creation Test Passed."
#---------------------------------------------------------------------------------------------------------#
print "(=) activateNode Test"
print "(=) activating device=%s" % dev2
db.activateNode(dev2, ses)
print "\t(+) Activated, printing all nodes in %s" % ses
nodes = db.getNodes(ses)
for node in nodes:
print node
#---------------------------------------------------------------------------------------------------------#
print "(=) Assert Free Node Test"
try:
db.activateNode(dev2, ses)
print "\t(-) Assert Free Node Test Failed"
except NodeError as ne:
print "\t(+) Assert Free Node Test Passed. Error Caught: ", ne.msg
#---------------------------------------------------------------------------------------------------------#
print "(=) freeNode Test"
print "(=) freeing device=%s" % dev2
db.freeNode(dev2)
print "\t(+) Freed"
#---------------------------------------------------------------------------------------------------------#
print "(=) Check Node State Test"
try:
db.freeNode(dev2)
print "\t(-) Check Node State Test Failed"
except NodeError as ne:
print "\t(+) Check Node State Test Passed. Error Caught: ", ne.msg
#---------------------------------------------------------------------------------------------------------#
print "(=) deleteNode Test"
print "(=) deleting device=%s" % dev3
db.deleteNode(dev3)
print "(=) deleting non-existent device."
try:
db.deleteNode('devu')
print "\t(-) deleteNode Test Failed."
except NodeError as ne:
print "\t(+) deleteNode Test Passed. Error Caught: ", ne.msg
#---------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------#
print "(========)CONTACT FUNCTION TESTS(========)"
#---------------------------------------------------------------------------------------------------------#
print "(=) Creating contact"
contID = db.createContact(cont1['fName'], cont1['lName'], cont1['email'], cont1['sms'])
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing Failure of createContact function"
try:
db.createContact(fName=badfName)
print "\t(-) Failure of createContact Test Failed"
except ContactError as ce:
print "\t(+) Failure of createContact Test Passed. Error Caught:", ce.msg
try:
db.createContact(lName=badlName)
print "\t(-) Failure of createContact Test Failed"
except ContactError as ce:
print "\t(+) Failure of createContact Test Passed. Error Caught:", ce.msg
try:
db.createContact(email=bademail)
print "\t(-) Failure of createContact Test Failed"
except ContactError as ce:
print "\t(+) Failure of createContact Test Passed. Error Caught:", ce.msg
try:
db.createContact(sms=badsms)
print "\t(-) Failure of createContact Test Failed"
except ContactError as ce:
print "\t(+) Failure of createContact Test Passed. Error Caught:", ce.msg
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing findContact function"
byID = db.findContact(cID=contID)
if byID['cID'] == contID:
print "\t(+) Found contact by cID"
else:
print "\t(-) Could not find contact by cID"
#---------------------------------------------------------------------------------------------------------#
byInfo = db.findContact(fName=cont1['fName'], lName=cont1['lName'], email=cont1['email'], sms=cont1['sms'])
if byInfo['cID'] == contID:
print "\t(+) Found contact by information"
else:
print "\t(-) Could not find contact by information"
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing assignSession function"
db.assignSession(ses, fName=cont1['fName'], lName=cont1['lName'], email=cont1['email'], sms=cont1['sms'])
db.printSessions()
db.unassignSession(ses)
#---------------------------------------------------------------------------------------------------------#
print "(=) Testing assignNode function"
db.assignNode(dev1, contID)
db.printNodes()
db.unassignNode(dev1)
#---------------------------------------------------------------------------------------------------------#
print "(=) Printing list of Contacts"
db.printContacts()
#---------------------------------------------------------------------------------------------------------#
print "(=) Cleaning up...."
db.deleteContact(contID)
db.deleteNode(dev1)
db.deleteNode(dev2)
db.deleteSession(ses)
db.close()
#---------------------------------------------------------------------------------------------------------#