50
51
self.assertEquals(results, ['a', 'b', 'c'])
51
52
self.assertEquals(q.get(), 'b')
52
53
self.assertEquals(q.get(), 'c')
53
assert p.get(timeout=0)=="OK"
54
assert p.get(timeout=0) == "OK"
55
56
def test_zero_max_size(self):
57
59
def sender(evt, q):
69
71
gevent.sleep(0.001)
70
72
self.assert_(not e1.ready())
71
73
p2 = gevent.spawn(receiver, e2, q)
72
self.assertEquals(e2.get(),'hi')
73
self.assertEquals(e1.get(),'done')
74
self.assertEquals(e2.get(), 'hi')
75
self.assertEquals(e1.get(), 'done')
74
76
timeout = gevent.Timeout.start_new(0)
76
78
gevent.joinall([p1, p2])
87
89
sendings = ['1', '2', '3', '4']
88
90
evts = [AsyncResult() for x in sendings]
89
91
for i, x in enumerate(sendings):
90
gevent.spawn(waiter, q, evts[i]) # use waitall for them
92
gevent.spawn(waiter, q, evts[i]) # use waitall for them
92
gevent.sleep(0.01) # get 'em all waiting
94
gevent.sleep(0.01) # get 'em all waiting
95
98
def collect_pending_results():
96
99
for i, e in enumerate(evts):
97
100
timer = gevent.Timeout.start_new(0.001)
243
248
def test_put_nowait_simple(self):
245
250
q = queue.Queue(1)
246
252
def store_result(func, *args):
247
253
result.append(func(*args))
248
255
core.active_event(store_result, util.wrap_errors(Exception, q.put_nowait), 2)
249
256
core.active_event(store_result, util.wrap_errors(Exception, q.put_nowait), 3)
251
assert len(result)==2, result
252
assert result[0]==None, result
258
assert len(result) == 2, result
259
assert result[0] == None, result
253
260
assert isinstance(result[1], queue.Full), result
255
262
def test_get_nowait_simple(self):
257
264
q = queue.Queue(1)
259
267
def store_result(func, *args):
260
268
result.append(func(*args))
261
270
core.active_event(store_result, util.wrap_errors(Exception, q.get_nowait))
262
271
core.active_event(store_result, util.wrap_errors(Exception, q.get_nowait))
264
assert len(result)==2, result
265
assert result[0]==4, result
273
assert len(result) == 2, result
274
assert result[0] == 4, result
266
275
assert isinstance(result[1], queue.Empty), result
268
277
# get_nowait must work from the mainloop
307
320
assert q.empty(), q
310
if __name__=='__main__':
323
class TestJoinEmpty(TestCase):
325
def test_issue_45(self):
326
"""Test that join() exits immediatelly if not jobs were put into the queue"""
327
self.switch_expected = False
328
q = queue.JoinableQueue()
332
if __name__ == '__main__':