Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
 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