def testBasicTwo(self): '''Test that two listeners work''' lq = ListenableQueue('Queue 02') listener1 = SampleQueueListenerT('Listener 01T', lq) listener2 = SampleQueueListenerT('Listener 02T', lq) self.assertEqual(len(listener1.notifications), 0) self.assertEqual(len(listener2.notifications), 0) item = 'Item 02' lq.put_nowait(item) time.sleep(1) self.assertEqual(len(listener1.notifications), 1) self.assertTrue(item in listener1.notifications) self.assertEqual(len(listener2.notifications), 1) self.assertTrue(item in listener2.notifications) # unregister listener lq.unregister_listener(listener1) item2 = 'Item 03' lq.put_nowait(item2) time.sleep(1) self.assertEqual(len(listener1.notifications),1) self.assertTrue(item in listener1.notifications) self.assertEqual(len(listener2.notifications), 2) self.assertTrue(item in listener2.notifications) self.assertTrue(item2 in listener2.notifications) lq.shutdown() self.assertFalse(listener1.shutdown_immediate_flag) # It was unregistered before shutdown! self.assertTrue(listener2.shutdown_immediate_flag) self.assertEqual(len(listener1.notifications), 1) # It was unregistered before shutdown! self.assertEqual(len(listener2.notifications), 2) # EOD is not sent return
def testNoUnregister(self): '''Test that one listener works''' lq = ListenableQueue('Queue 01') listener1 = SampleQueueListenerWD('Listener 01T', lq) self.assertEqual(len(listener1.notifications), 0) item = 'Item 01' lq.put_nowait(item) time.sleep(1) self.assertEqual(len(listener1.notifications), 1) self.assertTrue(item in listener1.notifications) lq.shutdown() self.assertTrue(listener1.shutdown_immediate_flag) self.assertEqual(len(listener1.notifications), 1) # EOD is not sent return
def testBasicOne(self): '''Test that one listener works''' lq = ListenableQueue('Queue 01') listener1 = SampleQueueListenerT('Listener 01T', lq) self.assertEqual(len(listener1.notifications), 0) item = 'Item 01' lq.put_nowait(item) time.sleep(1) self.assertEqual(len(listener1.notifications), 1) self.assertTrue(item in listener1.notifications) lq.shutdown() self.assertFalse(listener1.shutdown_immediate_flag) self.assertEqual(len(listener1.notifications), 2) return
def testAnalyzerBasicA(self): '''Test basic Analyzer creation using a Sample analyzer asynch''' inQ1 = ListenableQueue('inQ1') outQ1 = ListenableQueue('outQ1') outQL1 = SampleQueueListenerT('outQL1') outQ1.register_listener(outQL1) SimpleEventAnalyzerAllAlert('TestAnalyzer1', inQ1, outQ1, number=3) right_now = datetime.now() te1 = teal.Event.fromDict({EVENT_ATTR_REC_ID:1, EVENT_ATTR_EVENT_ID:'E1', EVENT_ATTR_TIME_OCCURRED: right_now}) inQ1.put_nowait(te1) time.sleep(2) self.assertEqual(len(outQL1.notifications), 1) alert = outQL1.notifications[0] self.assertEquals(alert.get_rec_id(), 1) self.assertEquals(alert.alert_id, 'Alert 01') return
def testNoCallback(self): '''Test callback isn't called when 2nd True''' lq = ListenableQueue('Queue 03', self.process_callback) listener1 = SampleQueueListenerF('Listener 01F', lq) listener2 = SampleQueueListenerT('Listener 02T', lq) self.assertEqual(len(listener1.notifications), 0) self.assertEqual(len(listener2.notifications), 0) item = 'Item 02' lq.put_nowait(item) self.my_event.wait(2) self.assertEqual(self.callback_occurred, False) self.assertEqual(self.callback_item, None) self.assertEqual(len(listener1.notifications), 1) self.assertTrue(item in listener1.notifications) self.assertEqual(len(listener2.notifications), 1) self.assertTrue(item in listener2.notifications) lq.shutdown() self.assertTrue(listener1.shutdown_immediate_flag) self.assertTrue(listener2.shutdown_immediate_flag) self.assertEqual(len(listener1.notifications), 1) # EOD not sent self.assertEqual(len(listener2.notifications), 1) # EOD not sent return
def testCallback(self): '''Test that callback work when all false ''' lq = ListenableQueue('Queue 03', self.process_callback) listener1 = SampleQueueListenerF('Listener 01F', lq) listener2 = SampleQueueListenerF('Listener 02F', lq) self.assertEqual(len(listener1.notifications), 0) self.assertEqual(len(listener2.notifications), 0) item = 'Item 02' lq.put_nowait(item) self.my_event.wait(2) self.assertEqual(self.callback_occurred, True) self.assertEqual(self.callback_item, item) self.assertEqual(len(listener1.notifications), 1) self.assertTrue(item in listener1.notifications) self.assertEqual(len(listener2.notifications), 1) self.assertTrue(item in listener2.notifications) lq.shutdown() self.assertFalse(listener1.shutdown_immediate_flag) self.assertFalse(listener2.shutdown_immediate_flag) self.assertEqual(len(listener1.notifications), 2) self.assertEqual(len(listener2.notifications), 2) return