def test_task_queue_in_time_order(self): tq = TaskQueue(rate=300, burst=1000) queues = dict() tasks = dict() for i in range(0, 100): it = InQueueTask(str(i), priority=int(i // 10), exetime=0) tq.put(it.taskid, it.priority, it.exetime) if it.priority not in queues: queues[it.priority] = Queue.Queue() q = queues[it.priority] # type:Queue.Queue q.put(it) tasks[it.taskid] = it six.print_('put, taskid=', it.taskid, 'priority=', it.priority, 'exetime=', it.exetime) for i in range(0, 100): task_id = tq.get() task = tasks[task_id] q = queues[task.priority] # type: Queue.Queue expect_task = q.get() self.assertEqual(task_id, expect_task.taskid) self.assertEqual(task.priority, int(9 - i // 10)) six.print_('get, taskid=', task.taskid, 'priority=', task.priority, 'exetime=', task.exetime) self.assertEqual(tq.size(), 100) self.assertEqual(tq.priority_queue.qsize(), 0) self.assertEqual(tq.processing.qsize(), 100) for q in six.itervalues(queues): # type:Queue.Queue self.assertEqual(q.qsize(), 0) pass
def test_task_queue_in_time_order(self): tq = TaskQueue(rate=300, burst=1000) queues = dict() tasks = dict() for i in range(0, 100): it = InQueueTask(str(i), priority=int(i // 10), exetime=0) tq.put(it.taskid, it.priority, it.exetime) if it.priority not in queues: queues[it.priority] = Queue.Queue() q = queues[it.priority] # type:Queue.Queue q.put(it) tasks[it.taskid] = it # six.print_('put, taskid=', it.taskid, 'priority=', it.priority, 'exetime=', it.exetime) for i in range(0, 100): task_id = tq.get() task = tasks[task_id] q = queues[task.priority] # type: Queue.Queue expect_task = q.get() self.assertEqual(task_id, expect_task.taskid) self.assertEqual(task.priority, int(9 - i // 10)) # six.print_('get, taskid=', task.taskid, 'priority=', task.priority, 'exetime=', task.exetime) self.assertEqual(tq.size(), 100) self.assertEqual(tq.priority_queue.qsize(), 0) self.assertEqual(tq.processing.qsize(), 100) for q in six.itervalues(queues): # type:Queue.Queue self.assertEqual(q.qsize(), 0) pass
class TestTaskQueue(unittest.TestCase): @classmethod def setUpClass(self): self.task_queue = TaskQueue() self.task_queue.rate = 100000 self.task_queue.burst = 100000 self.task_queue.processing_timeout = 0.5 def test_10_put(self): self.task_queue.put('a3', 0, time.time() + 0.5) self.task_queue.put('a4', 3, time.time() + 0.2) self.task_queue.put('a2', 0) self.task_queue.put('a1', 1) self.assertEqual(self.task_queue.size(), 4) def test_20_update(self): self.task_queue.put('a2', 4) self.assertEqual(self.task_queue.size(), 4) self.task_queue.put('a3', 2, 0) self.assertEqual(self.task_queue.size(), 4) def test_30_get_from_priority_queue(self): self.assertEqual(self.task_queue.get(), 'a2') self.assertEqual(self.task_queue.size(), 4) def test_40_time_queue_1(self): self.task_queue.check_update() self.assertEqual(self.task_queue.get(), 'a3') self.assertEqual(self.task_queue.size(), 4) def test_50_time_queue_2(self): time.sleep(0.3) self.task_queue.check_update() self.assertEqual(self.task_queue.get(), 'a4') self.assertEqual(self.task_queue.get(), 'a1') self.assertEqual(self.task_queue.size(), 4) def test_60_processing_queue(self): time.sleep(0.5) self.task_queue.check_update() self.assertEqual(self.task_queue.get(), 'a2') self.assertEqual(len(self.task_queue), 4) self.assertEqual(self.task_queue.get(), 'a4') self.assertEqual(self.task_queue.get(), 'a3') self.assertEqual(self.task_queue.get(), 'a1') self.assertEqual(len(self.task_queue), 4) def test_70_done(self): self.assertTrue(self.task_queue.done('a2')) self.assertTrue(self.task_queue.done('a1')) self.assertEqual(len(self.task_queue), 2) self.assertTrue(self.task_queue.done('a4')) self.assertTrue(self.task_queue.done('a3')) self.assertEqual(len(self.task_queue), 0)