def test_gets(self): queue = Queue(capacity=10) queue.puts((1, 2, 3)) result = queue.gets(count=5, timeout=TIMEOUT) self.assertEqual(result, (1, 2, 3)) queue.puts((1, 2, 3, 4, 5)) result = queue.gets(count=3, timeout=TIMEOUT) self.assertEqual(result, (1, 2, 3)) result = queue.gets(count=3, timeout=TIMEOUT) self.assertEqual(result, (4, 5))
def test_gets_event(self): queue = Queue(capacity=10) event = QueueEvent('test') queue.puts((event, 1, 2, 3, event)) result = queue.gets(count=5, timeout=TIMEOUT) self.assertEqual(result, (event, )) result = queue.gets(count=5, timeout=TIMEOUT) self.assertEqual(result, (1, 2, 3, event)) task = PeriodicTask(TIMEOUT / 10, lambda: queue.put(1)) task.start() try: result = queue.gets(count=5, timeout=TIMEOUT) self.assertEqual(result, (1, 1, 1, 1, 1)) finally: task.cancel() task.join()