def test_queue_length(self): a = mock.Mock() a.PRIORITY = 5 q = StablePriorityQueue(maxsize=10, max_priority=20) self.assertEqual(q.qsize(), 0) q.put(a) self.assertEqual(q.qsize(), 1) q.get() self.assertEqual(q.qsize(), 0)
def test_queue_length(self): a = mock.Mock() a.PRIORITY = 5 q = StablePriorityQueue(maxsize=10, max_priority=20) self.assertEqual(q.qsize(), 0) q.put(a) self.assertEqual(q.qsize(), 1) q.get() self.assertEqual(q.qsize(), 0)
def test_insert_max_priority_capped(self): q = StablePriorityQueue(maxsize=10, max_priority=20) a = mock.Mock() a.PRIORITY = 100 q.put(a) self.assertIs(q.get(), a)
def test_insert_max_priority_capped(self): q = StablePriorityQueue(maxsize=10, max_priority=20) a = mock.Mock() a.PRIORITY = 100 q.put(a) self.assertIs(q.get(), a)
def test_fifo_order_of_same_priorities(self): a = mock.Mock() a.PRIORITY = 5 b = mock.Mock() b.PRIORITY = 5 c = mock.Mock() c.PRIORITY = 1 q = StablePriorityQueue(maxsize=10, max_priority=20) q.put(a) q.put(b) q.put(c) # First we should get c because it's the lowest priority. # We're using assertIs because we want the *exact* object. self.assertIs(q.get(), c) # Then a and b are the same priority, but we should get # a first because it was inserted first. self.assertIs(q.get(), a) self.assertIs(q.get(), b)
def test_fifo_order_of_same_priorities(self): a = mock.Mock() a.PRIORITY = 5 b = mock.Mock() b.PRIORITY = 5 c = mock.Mock() c.PRIORITY = 1 q = StablePriorityQueue(maxsize=10, max_priority=20) q.put(a) q.put(b) q.put(c) # First we should get c because it's the lowest priority. # We're using assertIs because we want the *exact* object. self.assertIs(q.get(), c) # Then a and b are the same priority, but we should get # a first because it was inserted first. self.assertIs(q.get(), a) self.assertIs(q.get(), b)
def test_priority_attr_is_missing(self): # If priority attr is missing, we should add it # to the lowest priority. q = StablePriorityQueue(maxsize=10, max_priority=20) a = object() b = mock.Mock() b.PRIORITY = 5 q.put(a) q.put(b) self.assertIs(q.get(), b) self.assertIs(q.get(), a)
def test_priority_attr_is_missing(self): # If priority attr is missing, we should add it # to the lowest priority. q = StablePriorityQueue(maxsize=10, max_priority=20) a = object() b = mock.Mock() b.PRIORITY = 5 q.put(a) q.put(b) self.assertIs(q.get(), b) self.assertIs(q.get(), a)
class TestTaskOrdering(unittest.TestCase): def setUp(self): self.q = StablePriorityQueue(maxsize=10, max_priority=20) def create_task(self): # We don't actually care about the arguments, we just want to test # the ordering of the tasks. return CreateLocalFileTask(None, None) def complete_task(self): return CompleteDownloadTask(None, None, None, None, None) def download_task(self): return DownloadPartTask(None, None, None, None, mock.Mock(), None, None) def shutdown_task(self, priority=None): return ShutdownThreadRequest(priority) def test_order_unchanged_in_same_priority(self): create = self.create_task() download = self.download_task() complete = self.complete_task() self.q.put(create) self.q.put(download) self.q.put(complete) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) def test_multiple_tasks(self): create = self.create_task() download = self.download_task() complete = self.complete_task() create2 = self.create_task() download2 = self.download_task() complete2 = self.complete_task() self.q.put(create) self.q.put(download) self.q.put(complete) self.q.put(create2) self.q.put(download2) self.q.put(complete2) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) self.assertIs(self.q.get(), create2) self.assertIs(self.q.get(), download2) self.assertIs(self.q.get(), complete2) def test_shutdown_tasks_are_last(self): create = self.create_task() download = self.download_task() complete = self.complete_task() shutdown = self.shutdown_task(priority=11) self.q.put(create) self.q.put(download) self.q.put(complete) self.q.put(shutdown) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) self.assertIs(self.q.get(), shutdown)
class TestTaskOrdering(unittest.TestCase): def setUp(self): self.q = StablePriorityQueue(maxsize=10, max_priority=20) def create_task(self): # We don't actually care about the arguments, we just want to test # the ordering of the tasks. return CreateLocalFileTask(None, None) def complete_task(self): return CompleteDownloadTask(None, None, None, None, None) def download_task(self): return DownloadPartTask(None, None, None, None, mock.Mock(), None, None) def shutdown_task(self, priority=None): return ShutdownThreadRequest(priority) def test_order_unchanged_in_same_priority(self): create = self.create_task() download = self.download_task() complete = self.complete_task() self.q.put(create) self.q.put(download) self.q.put(complete) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) def test_multiple_tasks(self): create = self.create_task() download = self.download_task() complete = self.complete_task() create2 = self.create_task() download2 = self.download_task() complete2 = self.complete_task() self.q.put(create) self.q.put(download) self.q.put(complete) self.q.put(create2) self.q.put(download2) self.q.put(complete2) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) self.assertIs(self.q.get(), create2) self.assertIs(self.q.get(), download2) self.assertIs(self.q.get(), complete2) def test_shutdown_tasks_are_last(self): create = self.create_task() download = self.download_task() complete = self.complete_task() shutdown = self.shutdown_task(priority=11) self.q.put(create) self.q.put(download) self.q.put(complete) self.q.put(shutdown) self.assertIs(self.q.get(), create) self.assertIs(self.q.get(), download) self.assertIs(self.q.get(), complete) self.assertIs(self.q.get(), shutdown)