summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_queue.py
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2010-07-23 16:56:21 (GMT)
committerBrett Cannon <bcannon@gmail.com>2010-07-23 16:56:21 (GMT)
commit671153db25e3cc6ba1fdd82763e401c310b22c8e (patch)
tree6b623d67df15d40a7abe7edc27242be585a634ac /Lib/test/test_queue.py
parent6b0e0e41b8ceb63a56421ff16c03b40adc67ae1e (diff)
downloadcpython-671153db25e3cc6ba1fdd82763e401c310b22c8e.zip
cpython-671153db25e3cc6ba1fdd82763e401c310b22c8e.tar.gz
cpython-671153db25e3cc6ba1fdd82763e401c310b22c8e.tar.bz2
Add queue tests for empty, full, put_nowait, and get_nowait.
Closes issue 9357. Thanks to Brian Brazil for the patch.
Diffstat (limited to 'Lib/test/test_queue.py')
-rw-r--r--Lib/test/test_queue.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py
index 3153829..0c8093a 100644
--- a/Lib/test/test_queue.py
+++ b/Lib/test/test_queue.py
@@ -90,6 +90,8 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
def simple_queue_test(self, q):
if q.qsize():
raise RuntimeError("Call this function with an empty queue")
+ self.assertTrue(q.empty())
+ self.assertFalse(q.full())
# I guess we better check things actually queue correctly a little :)
q.put(111)
q.put(333)
@@ -108,6 +110,8 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
full = 3 * 2 * QUEUE_SIZE
q.put(last)
self.assertTrue(qfull(q), "Queue should be full")
+ self.assertFalse(q.empty())
+ self.assertTrue(q.full())
try:
q.put(full, block=0)
self.fail("Didn't appear to block with a full queue")
@@ -193,6 +197,25 @@ class BaseQueueTest(unittest.TestCase, BlockingTestMixin):
self.simple_queue_test(q)
self.simple_queue_test(q)
+ def test_negative_timeout_raises_exception(self):
+ q = self.type2test(QUEUE_SIZE)
+ with self.assertRaises(ValueError):
+ q.put(1, timeout=-1)
+ with self.assertRaises(ValueError):
+ q.get(1, timeout=-1)
+
+ def test_nowait(self):
+ q = self.type2test(QUEUE_SIZE)
+ for i in range(QUEUE_SIZE):
+ q.put_nowait(1)
+ with self.assertRaises(queue.Full):
+ q.put_nowait(1)
+
+ for i in range(QUEUE_SIZE):
+ q.get_nowait()
+ with self.assertRaises(queue.Empty):
+ q.get_nowait()
+
class QueueTest(BaseQueueTest):
type2test = queue.Queue