blob: e34586bd1b1839e03e16a15892f59f442c2c3b80 [file] [log] [blame]
hamidbfbc3dd2017-09-30 16:23:30 +05001from connection import Connection
2import unittest
3import sys
4import jsmin
5import json
6import os
7import time
8from jsmin import jsmin
prithiv9eb50a72017-10-04 14:19:25 +01009sys.path.append("../../test/core/")
10from test_producer import KafkaProducer
hamidbfbc3dd2017-09-30 16:23:30 +050011from kafka import KafkaConsumer
12try:
13 import boto
14 import boto.ec2
15 import boto.vpc
16 import boto.ec2.cloudwatch
17 import boto.ec2.connection
18except:
19 exit("Boto not avialable. Try activating your virtualenv OR `pip install boto`")
20
21#--------------------------------------------------------------------------------------------------------------------------------------
22
23# Test Producer object to generate request
24
25producer = KafkaProducer('create_alarm_request')
26obj = Connection()
27connections = obj.setEnvironment()
28connections_res = obj.connection_instance()
29cloudwatch_conn = connections_res['cloudwatch_connection']
30
31#--------------------------------------------------------------------------------------------------------------------------------------
32
33'''Test E2E Flow : Test cases has been tested one at a time.
prithiv9eb50a72017-10-04 14:19:25 +0100341) Commom Request is generated using request function in test_producer.py(/test/core)
hamidbfbc3dd2017-09-30 16:23:30 +0500352) The request is then consumed by the comsumer (plugin)
363) The response is sent back on the message bus in plugin_alarm.py using
37 response functions in producer.py(/core/message-bus)
384) The response is then again consumed by the unit_tests_alarms.py
39 and the test cases has been applied on the response.
40'''
41
42class config_alarm_name_test(unittest.TestCase):
43
44
45 def setUp(self):
46 pass
47 #To generate a request of testing new alarm name and new instance id in create alarm request
48 def test_differentName_differentInstance(self):
49 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +010050 producer.request("test_schemas/create_alarm/create_alarm_differentName_differentInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +050051 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
52
53 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
54 _consumer.subscribe(['alarm_response'])
55
56 for message in _consumer:
57 if message.key == "create_alarm_response":
58 info = json.loads(json.loads(message.value))
59 print info
60 time.sleep(1)
61 self.assertTrue(info['alarm_create_response']['status'])
62 return
63
64 #To generate a request of testing new alarm name and existing instance id in create alarm request
65 def test_differentName_sameInstance(self):
66 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +010067 producer.request("test_schemas/create_alarm/create_alarm_differentName_sameInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +050068 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
69
70 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
71 _consumer.subscribe(['alarm_response'])
72
73 for message in _consumer:
74 if message.key == "create_alarm_response":
75 info = json.loads(json.loads(message.value))
76 print info
77 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +010078 producer.request("test_schemas/delete_alarm/name_valid_delete1.json",'delete_alarm_request','','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +050079 self.assertTrue(info['alarm_create_response']['status'])
80 return
81
82 #To generate a request of testing existing alarm name and new instance id in create alarm request
83 def test_sameName_differentInstance(self):
84 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +010085 producer.request("test_schemas/create_alarm/create_alarm_sameName_differentInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +050086 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
87
88 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
89 _consumer.subscribe(['alarm_response'])
90
91 for message in _consumer:
92 if message.key == "create_alarm_response":
93 info = json.loads(json.loads(message.value))
94 print info
95 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +010096 producer.request("test_schemas/delete_alarm/name_valid_delete2.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +050097 self.assertTrue(info['alarm_create_response']['status'])
98 return
99
100 #To generate a request of testing existing alarm name and existing instance id in create alarm request
101 def test_sameName_sameInstance(self):
102 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100103 producer.request("test_schemas/create_alarm/create_alarm_sameName_sameInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500104 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
105
106 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
107 _consumer.subscribe(['alarm_response'])
108
109 for message in _consumer:
110 if message.key == "create_alarm_response":
111 info = json.loads(json.loads(message.value))
112 print info,"---"
113 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100114 producer.request("test_schemas/delete_alarm/name_valid.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500115 self.assertEqual(info, None)
116 return
117
118 #To generate a request of testing valid statistics in create alarm request
119 def test_statisticValid(self):
120 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100121 producer.request("test_schemas/create_alarm/statistic_valid.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500122 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
123
124 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
125 _consumer.subscribe(['alarm_response'])
126
127 for message in _consumer:
128 if message.key == "create_alarm_response":
129 info = json.loads(json.loads(message.value))
130 print info
131 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100132 producer.request("test_schemas/delete_alarm/name_valid_delete3.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500133 self.assertTrue(info['alarm_create_response']['status'])
134 return
135
136 #To generate a request of testing Invalid statistics in create alarm request
137 def test_statisticValidNot(self):
138 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100139 producer.request("test_schemas/create_alarm/statistic_invalid.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500140 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
141
142 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
143 _consumer.subscribe(['alarm_response'])
144
145 for message in _consumer:
146 if message.key == "create_alarm_response":
147 info = json.loads(json.loads(message.value))
148 print info,"---"
149 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100150 producer.request("test_schemas/delete_alarm/name_valid_delete3.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500151 self.assertEqual(info, None)
152 return
153
154 #To generate a request of testing valid operation in create alarm request
155 def test_operationValid(self):
156 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100157 producer.request("test_schemas/create_alarm/operation_valid.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500158 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
159
160 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
161 _consumer.subscribe(['alarm_response'])
162
163 for message in _consumer:
164 if message.key == "create_alarm_response":
165 info = json.loads(json.loads(message.value))
166 print info
167 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100168 producer.request("test_schemas/delete_alarm/name_valid_delete3.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500169 self.assertTrue(info['alarm_create_response']['status'])
170 return
171
172 #To generate a request of testing Invalid operation in create alarm request
173 def test_operationValidNot(self):
174 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100175 producer.request("test_schemas/create_alarm/operation_invalid.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500176 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
177
178 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
179 _consumer.subscribe(['alarm_response'])
180
181 for message in _consumer:
182 if message.key == "create_alarm_response":
183 info = json.loads(json.loads(message.value))
184 print info
185 time.sleep(1)
186 self.assertEqual(info,None)
187 return
188
189
190#--------------------------------------------------------------------------------------------------------------------------------------
191class update_alarm_name_test(unittest.TestCase):
192
193 #To generate a request of testing valid alarm_id in update alarm request
194 def test_nameValid(self):
prithiv9eb50a72017-10-04 14:19:25 +0100195 producer.request("test_schemas/update_alarm/update_alarm_new_alarm.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500196 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100197 producer.request("test_schemas/update_alarm/name_valid.json",'update_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500198 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
199
200 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
201 _consumer.subscribe(['alarm_response'])
202
203 for message in _consumer:
204 if message.key == "update_alarm_response":
205 info = json.loads(json.loads(json.loads(message.value)))
206 print info
207 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100208 producer.request("test_schemas/delete_alarm/name_valid_delete4.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500209 self.assertTrue(info['alarm_update_response']['status'])
210 return
211
212 #To generate a request of testing invalid alarm_id in update alarm request
213 def test_nameInvalid(self):
214 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100215 producer.request("test_schemas/update_alarm/name_invalid.json",'update_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500216 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
217
218 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
219 _consumer.subscribe(['alarm_response'])
220
221 for message in _consumer:
222 if message.key == "update_alarm_response":
223 info = json.loads(json.loads(json.loads(message.value)))
224 print info
225 time.sleep(1)
226 self.assertEqual(info,None)
227 return
228
229 #To generate a request of testing valid statistics in update alarm request
230 def test_statisticValid(self):
prithiv9eb50a72017-10-04 14:19:25 +0100231 producer.request("test_schemas/create_alarm/create_alarm_differentName_differentInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500232 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100233 producer.request("test_schemas/update_alarm/statistic_valid.json",'update_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500234 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
235
236 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
237 _consumer.subscribe(['alarm_response'])
238
239 for message in _consumer:
240 if message.key == "update_alarm_response":
241 info = json.loads(json.loads(json.loads(message.value)))
242 print info
243 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100244 producer.request("test_schemas/delete_alarm/name_valid.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500245 self.assertTrue(info['alarm_update_response']['status'])
246 return
247
248 #To generate a request of testing Invalid statistics in update alarm request
249 def test_statisticInvalid(self):
250 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100251 producer.request("test_schemas/update_alarm/statistic_invalid.json",'update_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500252 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
253
254 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
255 _consumer.subscribe(['alarm_response'])
256
257 for message in _consumer:
258 if message.key == "update_alarm_response":
259 info = json.loads(json.loads(json.loads(message.value)))
260 print info
261 time.sleep(1)
262 self.assertEqual(info,None)
263 return
264
265 #To generate a request of testing valid operation in update alarm request
266 def test_operationValid(self):
prithiv9eb50a72017-10-04 14:19:25 +0100267 producer.request("test_schemas/create_alarm/create_alarm_differentName_differentInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500268 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100269 producer.request("test_schemas/update_alarm/operation_valid.json",'update_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500270 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
271
272 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
273 _consumer.subscribe(['alarm_response'])
274
275 for message in _consumer:
276 if message.key == "update_alarm_response":
277 info = json.loads(json.loads(json.loads(message.value)))
278 print info
279 time.sleep(1)
prithiv9eb50a72017-10-04 14:19:25 +0100280 producer.request("test_schemas/delete_alarm/name_valid.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500281 self.assertTrue(info['alarm_update_response']['status'])
282 return
283
284#--------------------------------------------------------------------------------------------------------------------------------------
285class delete_alarm_test(unittest.TestCase):
286
287 #To generate a request of testing valid alarm_id in delete alarm request
288 def test_nameValid(self):
prithiv9eb50a72017-10-04 14:19:25 +0100289 producer.request("test_schemas/create_alarm/create_alarm_differentName_differentInstance.json",'create_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500290 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100291 producer.request("test_schemas/delete_alarm/name_valid.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500292 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
293
294 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
295 _consumer.subscribe(['alarm_response'])
296
297 for message in _consumer:
298 if message.key == "delete_alarm_response":
299 info = json.loads(json.loads(json.loads(message.value)))
300 print info
301 time.sleep(1)
302 self.assertTrue(info['alarm_deletion_response']['status'])
303 return
304
305 #To generate a request of testing Invalid alarm_id in delete alarm request
306 def test_nameInvalid(self):
307 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100308 producer.request("test_schemas/delete_alarm/name_invalid.json",'delete_alarm_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500309 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
310
311 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
312 _consumer.subscribe(['alarm_response'])
313
314 for message in _consumer:
315 if message.key == "delete_alarm_response":
316 info = json.loads(json.loads(json.loads(message.value)))
317 print info
318 time.sleep(1)
319 self.assertEqual(info,None)
320 return
321
322#--------------------------------------------------------------------------------------------------------------------------------------
323class list_alarm_test(unittest.TestCase):
324
325 #To generate a request of testing valid input fields in alarm list request
326 def test_valid_no_arguments(self):
327 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100328 producer.request("test_schemas/list_alarm/list_alarm_valid_no_arguments.json",'alarm_list_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500329 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
330
331 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
332 _consumer.subscribe(['alarm_response'])
333
334 for message in _consumer:
335 if message.key == "list_alarm_response":
336 info = json.loads(json.loads(json.loads(message.value)))
337 print info
338 time.sleep(1)
339 self.assertEqual(type(info),dict)
340 return
341
342 #To generate a request of testing valid input fields in alarm list request
343 def test_valid_one_arguments(self):
344 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100345 producer.request("test_schemas/list_alarm/list_alarm_valid_one_arguments.json",'alarm_list_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500346 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
347
348 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
349 _consumer.subscribe(['alarm_response'])
350
351 for message in _consumer:
352 if message.key == "list_alarm_response":
353 info = json.loads(json.loads(json.loads(message.value)))
354 print info
355 time.sleep(1)
356 self.assertEqual(type(info),dict)
357 return
358
359 #To generate a request of testing valid input fields in alarm list request
360 def test_valid_two_arguments(self):
361 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100362 producer.request("test_schemas/list_alarm/list_alarm_valid_two_arguments.json",'alarm_list_request', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500363 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
364
365 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
366 _consumer.subscribe(['alarm_response'])
367
368 for message in _consumer:
369 if message.key == "list_alarm_response":
370 info = json.loads(json.loads(json.loads(message.value)))
371 print info
372 time.sleep(1)
373 self.assertEqual(type(info),dict)
374 return
375
376
377#--------------------------------------------------------------------------------------------------------------------------------------
378class alarm_details_test(unittest.TestCase):
379
380 #To generate a request of testing valid input fields in acknowledge alarm
381 def test_Valid(self):
382 time.sleep(2)
prithiv9eb50a72017-10-04 14:19:25 +0100383 producer.request("test_schemas/alarm_details/acknowledge_alarm.json",'acknowledge_alarm', '','alarm_request')
hamidbfbc3dd2017-09-30 16:23:30 +0500384 server = {'server': 'localhost:9092', 'topic': 'alarm_request'}
385
386 _consumer = KafkaConsumer(bootstrap_servers=server['server'])
387 _consumer.subscribe(['alarm_response'])
388
389 for message in _consumer:
390 if message.key == "notify_alarm":
391 info = json.loads(json.loads(json.loads(message.value)))
392 print info
393 time.sleep(1)
394 self.assertEqual(type(info),dict)
395 return
396
397if __name__ == '__main__':
398
399 # Saving test reults in Log file
400
401 log_file = 'log_file.txt'
402 f = open(log_file, "w")
403 runner = unittest.TextTestRunner(f)
404 unittest.main(testRunner=runner)
405 f.close()
406
407 # For printing results on Console
408 # unittest.main()