Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_queue.py @ 84007:dbfbdf2b5c19 3.3
Fix #17967: For ftp urls CWD to target instead of hopping to each directory
towards target. This fixes a bug where target is accessible, but parent
directories are restricted.
| author | Senthil Kumaran <senthil@uthcode.com> |
|---|---|
| date | Sat, 01 Jun 2013 08:27:06 -0700 |
| parents | 1c7c692de1ee |
| children |
| rev | line source |
|---|---|
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
1 # Some simple queue module tests, plus some failure conditions |
|
33202
1d0f4c0357d0
Semantic-neutral format and comment changes.
Tim Peters <tim.peters@gmail.com>
parents:
26250
diff
changeset
|
2 # to ensure the Queue locks remain stable. |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
3 import queue |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
4 import time |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
5 import unittest |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46899
diff
changeset
|
6 from test import support |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
59615
diff
changeset
|
7 threading = support.import_module('threading') |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
8 |
|
33202
1d0f4c0357d0
Semantic-neutral format and comment changes.
Tim Peters <tim.peters@gmail.com>
parents:
26250
diff
changeset
|
9 QUEUE_SIZE = 5 |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
10 |
|
44675
627f2e2273b9
Remove Queue.empty() and Queue.full() in favor of using qsize() or trapping the Empty and Full exceptions.
Raymond Hettinger <python@rcn.com>
parents:
43014
diff
changeset
|
11 def qfull(q): |
|
627f2e2273b9
Remove Queue.empty() and Queue.full() in favor of using qsize() or trapping the Empty and Full exceptions.
Raymond Hettinger <python@rcn.com>
parents:
43014
diff
changeset
|
12 return q.maxsize > 0 and q.qsize() == q.maxsize |
|
627f2e2273b9
Remove Queue.empty() and Queue.full() in favor of using qsize() or trapping the Empty and Full exceptions.
Raymond Hettinger <python@rcn.com>
parents:
43014
diff
changeset
|
13 |
|
33202
1d0f4c0357d0
Semantic-neutral format and comment changes.
Tim Peters <tim.peters@gmail.com>
parents:
26250
diff
changeset
|
14 # A thread to run a function that unclogs a blocked Queue. |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
15 class _TriggerThread(threading.Thread): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
16 def __init__(self, fn, args): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
17 self.fn = fn |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
18 self.args = args |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
19 self.startedEvent = threading.Event() |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
20 threading.Thread.__init__(self) |
|
33202
1d0f4c0357d0
Semantic-neutral format and comment changes.
Tim Peters <tim.peters@gmail.com>
parents:
26250
diff
changeset
|
21 |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
22 def run(self): |
|
33203
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
23 # The sleep isn't necessary, but is intended to give the blocking |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
24 # function in the main thread a chance at actually blocking before |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
25 # we unclog it. But if the sleep is longer than the timeout-based |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
26 # tests wait in their blocking functions, those tests will fail. |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
27 # So we give them much longer timeout values compared to the |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
28 # sleep here (I aimed at 10 seconds for blocking functions -- |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
29 # they should never actually wait that long - they should make |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
30 # progress as soon as we call self.fn()). |
|
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
31 time.sleep(0.1) |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
32 self.startedEvent.set() |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
33 self.fn(*self.args) |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
34 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
35 |
|
33203
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
36 # Execute a function that blocks, and in a separate thread, a function that |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
37 # triggers the release. Returns the result of the blocking function. Caution: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
38 # block_func must guarantee to block until trigger_func is called, and |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
39 # trigger_func must guarantee to change queue state so that block_func can make |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
40 # enough progress to return. In particular, a block_func that just raises an |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
41 # exception regardless of whether trigger_func is called will lead to |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
42 # timing-dependent sporadic failures, and one of those went rarely seen but |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
43 # undiagnosed for years. Now block_func must be unexceptional. If block_func |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
44 # is supposed to raise an exception, call do_exceptional_blocking_test() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
45 # instead. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
46 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
47 class BlockingTestMixin: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
48 |
|
82931
1c7c692de1ee
Clean up references to threads in test_queue.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75799
diff
changeset
|
49 def tearDown(self): |
|
1c7c692de1ee
Clean up references to threads in test_queue.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75799
diff
changeset
|
50 self.t = None |
|
1c7c692de1ee
Clean up references to threads in test_queue.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75799
diff
changeset
|
51 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
52 def do_blocking_test(self, block_func, block_args, trigger_func, trigger_args): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
53 self.t = _TriggerThread(trigger_func, trigger_args) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
54 self.t.start() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
55 self.result = block_func(*block_args) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
56 # If block_func returned before our thread made the call, we failed! |
|
47615
045f83a1b864
Merged revisions 64125 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
57 if not self.t.startedEvent.is_set(): |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
58 self.fail("blocking function '%r' appeared not to block" % |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
59 block_func) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
60 self.t.join(10) # make sure the thread terminates |
|
47615
045f83a1b864
Merged revisions 64125 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
61 if self.t.is_alive(): |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
62 self.fail("trigger function '%r' appeared to not return" % |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
63 trigger_func) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
64 return self.result |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
65 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
66 # Call this instead if block_func is supposed to raise an exception. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
67 def do_exceptional_blocking_test(self,block_func, block_args, trigger_func, |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
68 trigger_args, expected_exception_class): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
69 self.t = _TriggerThread(trigger_func, trigger_args) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
70 self.t.start() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
71 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
72 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
73 block_func(*block_args) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
74 except expected_exception_class: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
75 raise |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
76 else: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
77 self.fail("expected exception of kind %r" % |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
78 expected_exception_class) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
79 finally: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
80 self.t.join(10) # make sure the thread terminates |
|
47615
045f83a1b864
Merged revisions 64125 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
81 if self.t.is_alive(): |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
82 self.fail("trigger function '%r' appeared to not return" % |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
83 trigger_func) |
|
47615
045f83a1b864
Merged revisions 64125 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
47201
diff
changeset
|
84 if not self.t.startedEvent.is_set(): |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
85 self.fail("trigger thread ended but event never set") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
86 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
87 |
|
75799
118f7bdd631b
#14333: fix test_queue so it can be run via standard unittest test discovery.
R David Murray <rdmurray@bitdance.com>
parents:
68257
diff
changeset
|
88 class BaseQueueTestMixin(BlockingTestMixin): |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
89 def setUp(self): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
90 self.cum = 0 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
91 self.cumlock = threading.Lock() |
|
33203
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
92 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
93 def simple_queue_test(self, q): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
94 if q.qsize(): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
95 raise RuntimeError("Call this function with an empty queue") |
|
63180
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
96 self.assertTrue(q.empty()) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
97 self.assertFalse(q.full()) |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
98 # I guess we better check things actually queue correctly a little :) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
99 q.put(111) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
100 q.put(333) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
101 q.put(222) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
102 target_order = dict(Queue = [111, 333, 222], |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
103 LifoQueue = [222, 333, 111], |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
104 PriorityQueue = [111, 222, 333]) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
105 actual_order = [q.get(), q.get(), q.get()] |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
106 self.assertEqual(actual_order, target_order[q.__class__.__name__], |
|
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
107 "Didn't seem to queue the correct data!") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
108 for i in range(QUEUE_SIZE-1): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
109 q.put(i) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
110 self.assertTrue(q.qsize(), "Queue should not be empty") |
|
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
111 self.assertTrue(not qfull(q), "Queue should not be full") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
112 last = 2 * QUEUE_SIZE |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
113 full = 3 * 2 * QUEUE_SIZE |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
114 q.put(last) |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
115 self.assertTrue(qfull(q), "Queue should be full") |
|
63180
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
116 self.assertFalse(q.empty()) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
117 self.assertTrue(q.full()) |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
118 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
119 q.put(full, block=0) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
120 self.fail("Didn't appear to block with a full queue") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
121 except queue.Full: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
122 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
123 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
124 q.put(full, timeout=0.01) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
125 self.fail("Didn't appear to time-out with a full queue") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
126 except queue.Full: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
127 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
128 # Test a blocking put |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
129 self.do_blocking_test(q.put, (full,), q.get, ()) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
130 self.do_blocking_test(q.put, (full, True, 10), q.get, ()) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
131 # Empty it |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
132 for i in range(QUEUE_SIZE): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
133 q.get() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
134 self.assertTrue(not q.qsize(), "Queue should be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
135 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
136 q.get(block=0) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
137 self.fail("Didn't appear to block with an empty queue") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
138 except queue.Empty: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
139 pass |
|
33203
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
140 try: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
141 q.get(timeout=0.01) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
142 self.fail("Didn't appear to time-out with an empty queue") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
143 except queue.Empty: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
144 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
145 # Test a blocking get |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
146 self.do_blocking_test(q.get, (), q.put, ('empty',)) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
147 self.do_blocking_test(q.get, (True, 10), q.put, ('empty',)) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
148 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
149 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
150 def worker(self, q): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
151 while True: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
152 x = q.get() |
|
46243
ab4f8c46c3d9
Prevent test_queue from leaking: one worker thread was not stopped.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
45177
diff
changeset
|
153 if x < 0: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
154 q.task_done() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
155 return |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
156 with self.cumlock: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
157 self.cum += x |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
158 q.task_done() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
159 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
160 def queue_join_test(self, q): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
161 self.cum = 0 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
162 for i in (0,1): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
163 threading.Thread(target=self.worker, args=(q,)).start() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
164 for i in range(100): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
165 q.put(i) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
166 q.join() |
|
66340
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
167 self.assertEqual(self.cum, sum(range(100)), |
|
2beb25369289
Merged revisions 86596 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
55593
diff
changeset
|
168 "q.join() did not block until all tasks were done") |
|
46243
ab4f8c46c3d9
Prevent test_queue from leaking: one worker thread was not stopped.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
45177
diff
changeset
|
169 for i in (0,1): |
|
ab4f8c46c3d9
Prevent test_queue from leaking: one worker thread was not stopped.
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
45177
diff
changeset
|
170 q.put(-1) # instruct the threads to close |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
171 q.join() # verify that you can join twice |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
172 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
173 def test_queue_task_done(self): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
174 # Test to make sure a queue task completed successfully. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
175 q = self.type2test() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
176 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
177 q.task_done() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
178 except ValueError: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
179 pass |
|
33203
eab21fbf9a70
Stab at SF 1010777: test_queue fails occasionally
Tim Peters <tim.peters@gmail.com>
parents:
33202
diff
changeset
|
180 else: |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
181 self.fail("Did not detect task count going negative") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
182 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
183 def test_queue_join(self): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
184 # Test that a queue join()s successfully, and before anything else |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
185 # (done twice for insurance). |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
186 q = self.type2test() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
187 self.queue_join_test(q) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
188 self.queue_join_test(q) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
189 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
190 q.task_done() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
191 except ValueError: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
192 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
193 else: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
194 self.fail("Did not detect task count going negative") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
195 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
196 def test_simple_queue(self): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
197 # Do it a couple of times on the same queue. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
198 # Done twice to make sure works with same instance reused. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
199 q = self.type2test(QUEUE_SIZE) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
200 self.simple_queue_test(q) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
201 self.simple_queue_test(q) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
202 |
|
63180
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
203 def test_negative_timeout_raises_exception(self): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
204 q = self.type2test(QUEUE_SIZE) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
205 with self.assertRaises(ValueError): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
206 q.put(1, timeout=-1) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
207 with self.assertRaises(ValueError): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
208 q.get(1, timeout=-1) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
209 |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
210 def test_nowait(self): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
211 q = self.type2test(QUEUE_SIZE) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
212 for i in range(QUEUE_SIZE): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
213 q.put_nowait(1) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
214 with self.assertRaises(queue.Full): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
215 q.put_nowait(1) |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
216 |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
217 for i in range(QUEUE_SIZE): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
218 q.get_nowait() |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
219 with self.assertRaises(queue.Empty): |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
220 q.get_nowait() |
|
af9341324d3d
Add queue tests for empty, full, put_nowait, and get_nowait.
Brett Cannon <bcannon@gmail.com>
parents:
61073
diff
changeset
|
221 |
|
65831
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
222 def test_shrinking_queue(self): |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
223 # issue 10110 |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
224 q = self.type2test(3) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
225 q.put(1) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
226 q.put(2) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
227 q.put(3) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
228 with self.assertRaises(queue.Full): |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
229 q.put_nowait(4) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
230 self.assertEqual(q.qsize(), 3) |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
231 q.maxsize = 2 # shrink the queue |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
232 with self.assertRaises(queue.Full): |
|
bc6cce4ab3c6
Issue 10110: Let Queue.put recognize a full queue when the maxsize parameter has been reduced.
Raymond Hettinger <python@rcn.com>
parents:
63180
diff
changeset
|
233 q.put_nowait(4) |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
234 |
|
75799
118f7bdd631b
#14333: fix test_queue so it can be run via standard unittest test discovery.
R David Murray <rdmurray@bitdance.com>
parents:
68257
diff
changeset
|
235 class QueueTest(BaseQueueTestMixin, unittest.TestCase): |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
236 type2test = queue.Queue |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
237 |
|
75799
118f7bdd631b
#14333: fix test_queue so it can be run via standard unittest test discovery.
R David Murray <rdmurray@bitdance.com>
parents:
68257
diff
changeset
|
238 class LifoQueueTest(BaseQueueTestMixin, unittest.TestCase): |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
239 type2test = queue.LifoQueue |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
240 |
|
75799
118f7bdd631b
#14333: fix test_queue so it can be run via standard unittest test discovery.
R David Murray <rdmurray@bitdance.com>
parents:
68257
diff
changeset
|
241 class PriorityQueueTest(BaseQueueTestMixin, unittest.TestCase): |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
242 type2test = queue.PriorityQueue |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
243 |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
244 |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
245 |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
246 # A Queue subclass that can provoke failure at a moment's notice :) |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
247 class FailingQueueException(Exception): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
248 pass |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
249 |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
250 class FailingQueue(queue.Queue): |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
251 def __init__(self, *args): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
252 self.fail_next_put = False |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
253 self.fail_next_get = False |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
254 queue.Queue.__init__(self, *args) |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
255 def _put(self, item): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
256 if self.fail_next_put: |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
257 self.fail_next_put = False |
|
43014
9834301a2fd3
Raise statement normalization in Lib/test/.
Collin Winter <collinw@gmail.com>
parents:
41642
diff
changeset
|
258 raise FailingQueueException("You Lose") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
259 return queue.Queue._put(self, item) |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
260 def _get(self): |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
261 if self.fail_next_get: |
|
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
262 self.fail_next_get = False |
|
43014
9834301a2fd3
Raise statement normalization in Lib/test/.
Collin Winter <collinw@gmail.com>
parents:
41642
diff
changeset
|
263 raise FailingQueueException("You Lose") |
|
46899
bd2c95c165ea
Rename Queue module to queue.
Alexandre Vassalotti <alexandre@peadrop.com>
parents:
46243
diff
changeset
|
264 return queue.Queue._get(self) |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
265 |
|
82931
1c7c692de1ee
Clean up references to threads in test_queue.
Ezio Melotti <ezio.melotti@gmail.com>
parents:
75799
diff
changeset
|
266 class FailingQueueTest(BlockingTestMixin, unittest.TestCase): |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
267 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
268 def failing_queue_test(self, q): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
269 if q.qsize(): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
270 raise RuntimeError("Call this function with an empty queue") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
271 for i in range(QUEUE_SIZE-1): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
272 q.put(i) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
273 # Test a failing non-blocking put. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
274 q.fail_next_put = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
275 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
276 q.put("oops", block=0) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
277 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
278 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
279 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
280 q.fail_next_put = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
281 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
282 q.put("oops", timeout=0.1) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
283 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
284 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
285 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
286 q.put("last") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
287 self.assertTrue(qfull(q), "Queue should be full") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
288 # Test a failing blocking put |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
289 q.fail_next_put = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
290 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
291 self.do_blocking_test(q.put, ("full",), q.get, ()) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
292 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
293 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
294 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
295 # Check the Queue isn't damaged. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
296 # put failed, but get succeeded - re-add |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
297 q.put("last") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
298 # Test a failing timeout put |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
299 q.fail_next_put = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
300 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
301 self.do_exceptional_blocking_test(q.put, ("full", True, 10), q.get, (), |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
302 FailingQueueException) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
303 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
304 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
305 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
306 # Check the Queue isn't damaged. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
307 # put failed, but get succeeded - re-add |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
308 q.put("last") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
309 self.assertTrue(qfull(q), "Queue should be full") |
|
23160
c548e726b3bc
Fix bug 544473 - "Queue module can deadlock".
Mark Hammond <mhammond@skippinet.com.au>
parents:
diff
changeset
|
310 q.get() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
311 self.assertTrue(not qfull(q), "Queue should not be full") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
312 q.put("last") |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
313 self.assertTrue(qfull(q), "Queue should be full") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
314 # Test a blocking put |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
315 self.do_blocking_test(q.put, ("full",), q.get, ()) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
316 # Empty it |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
317 for i in range(QUEUE_SIZE): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
318 q.get() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
319 self.assertTrue(not q.qsize(), "Queue should be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
320 q.put("first") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
321 q.fail_next_get = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
322 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
323 q.get() |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
324 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
325 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
326 pass |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
327 self.assertTrue(q.qsize(), "Queue should not be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
328 q.fail_next_get = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
329 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
330 q.get(timeout=0.1) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
331 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
332 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
333 pass |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
334 self.assertTrue(q.qsize(), "Queue should not be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
335 q.get() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
336 self.assertTrue(not q.qsize(), "Queue should be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
337 q.fail_next_get = True |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
338 try: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
339 self.do_exceptional_blocking_test(q.get, (), q.put, ('empty',), |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
340 FailingQueueException) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
341 self.fail("The queue didn't fail when it should have") |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
342 except FailingQueueException: |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
343 pass |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
344 # put succeeded, but get failed. |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
345 self.assertTrue(q.qsize(), "Queue should not be empty") |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
346 q.get() |
|
55593
0bb232078b8c
Merged revisions 73715 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47615
diff
changeset
|
347 self.assertTrue(not q.qsize(), "Queue should be empty") |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
33203
diff
changeset
|
348 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
349 def test_failing_queue(self): |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
350 # Test to make sure a queue is functioning correctly. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
351 # Done twice to the same instance. |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
352 q = FailingQueue(QUEUE_SIZE) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
353 self.failing_queue_test(q) |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
354 self.failing_queue_test(q) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
33203
diff
changeset
|
355 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
33203
diff
changeset
|
356 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
357 def test_main(): |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46899
diff
changeset
|
358 support.run_unittest(QueueTest, LifoQueueTest, PriorityQueueTest, |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
359 FailingQueueTest) |
|
37879
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
33203
diff
changeset
|
360 |
|
f731859e9b3b
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
Thomas Wouters <thomas@python.org>
parents:
33203
diff
changeset
|
361 |
|
45177
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
362 if __name__ == "__main__": |
|
01d1a4ffd5b3
Merge r60528, r60534 and r60539 from trunk.
Georg Brandl <georg@python.org>
parents:
44742
diff
changeset
|
363 test_main() |
