def test_get_many_not_enough_space(self): q = Queue(10) msg = "you want to get 12 but maxsize is 10" with self.assertRaisesRegexp(ValueError, msg): q.get_many(12) with self.assertRaises(Empty): q.get_many(2, block=False)
def test_get_many_enough_space(self): q = Queue(10) q.put_many((1, 2, 3)) q.put_many((1, 2, 3)) self.assertEqual((1, 2), q.get_many(2)) self.assertEqual((3, 1), q.get_many(2)) self.assertEqual((2, 3), q.get_many(2))
def test_get_many_with_item_limit(self): q = Queue() def producer(q): time.sleep(1) q.put_many((1, 2, 3)) q.put_many((1, 2, 3)) t = threading.Thread(target=producer, args=(q, )) t.start() self.assertEqual((1, 2), q.get_many(-1, maxitems=2, timeout=2)) self.assertEqual((3, ), q.get_many(-1, maxitems=1, timeout=2)) self.assertEqual((1, 2, 3), q.get_many(-1, maxitems=3, timeout=2)) t.join()