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 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