def test_queue_params(self): workq = WorkQueue(self.worker) self.enqueue_entries(workq, 1) self.assertEqual(1, workq.max_qlen()) self.dequeue_entries(workq, 1) self.enqueue_entries(workq, 4) self.assertEqual(4, workq.max_qlen()) self.dequeue_entries(workq, 4) # check max_size for bounded queue b_workq = WorkQueue(self.worker, max_qsize=4) b_workq.set_bounded(True) self.enqueue_entries(b_workq, 5) self.assertEqual(4, b_workq.max_qlen()) self.dequeue_entries(workq, 5)
def test_queue_params(self): workq = WorkQueue(self.worker) self.enqueue_entries(workq, 1) self.assertEqual(1, workq.max_qlen()) self.dequeue_entries(workq, 1) self.enqueue_entries(workq, 4) self.assertEqual(4, workq.max_qlen()) self.dequeue_entries(workq, 4) # check max_size for bounded queue b_workq = WorkQueue(self.worker, max_qsize = 4) b_workq.set_bounded(True); self.enqueue_entries(b_workq,5) self.assertEqual(4, b_workq.max_qlen()) self.dequeue_entries(workq, 5)
def test_enqueue_dequeue(self, mock_may_be_start_runner): workq = WorkQueue(self.worker, start_runner=None, max_qsize=1) entry = WorkQueueEntry() # basic enqueue test self.assertEqual(True, workq.enqueue(entry)) self.assertEqual(1, workq.num_enqueues()) self.assertEqual(0, workq.drops()) self.assertEqual(1, workq.size()) self.assertEqual(1, workq.may_be_start_runner.call_count) # work queue is not bounded # verify that we could enqueue more than max_qsize self.assertFalse(workq.bounded()) self.assertEqual(True, workq.enqueue(entry)) self.assertEqual(2, workq.num_enqueues()) self.assertEqual(0, workq.drops()) self.assertEqual(2, workq.size()) self.assertEqual(2, workq.may_be_start_runner.call_count) # work queue is bounded # verify that enqueue fails if qsize > max_qsize workq.set_bounded(True) self.assertTrue(workq.bounded()) self.assertEqual(False, workq.enqueue(entry)) self.assertEqual(2, workq.num_enqueues()) self.assertEqual(1, workq.drops()) self.assertEqual(2, workq.size()) self.assertEqual(2, workq.may_be_start_runner.call_count) # basic dequeue test self.assertIs(entry, workq.dequeue()) self.assertEqual(1, workq.num_dequeues()) self.assertEqual(1, workq.size()) self.assertEqual(entry, workq.dequeue()) self.assertEqual(2, workq.num_dequeues()) self.assertEqual(0, workq.size()) # call dequeue with no item in the queue self.assertEqual(None, workq.dequeue()) self.assertEqual(2, workq.num_dequeues()) self.assertEqual(0, workq.size())