@@ -149,22 +149,28 @@ def test_heartbeat_can_open_channel_client_close():
149
149
client_hbchan = zerorpc .HeartBeatOnChannel (client_channel , freq = TIME_FACTOR * 2 )
150
150
client_bufchan = zerorpc .BufferedChannel (client_hbchan )
151
151
152
- event = server .recv ()
153
- server_channel = server .channel (event )
154
- server_hbchan = zerorpc .HeartBeatOnChannel (server_channel , freq = TIME_FACTOR * 2 )
155
- server_bufchan = zerorpc .BufferedChannel (server_hbchan )
152
+ def server_fn ():
153
+ event = server .recv ()
154
+ server_channel = server .channel (event )
155
+ server_hbchan = zerorpc .HeartBeatOnChannel (server_channel , freq = TIME_FACTOR * 2 )
156
+ server_bufchan = zerorpc .BufferedChannel (server_hbchan )
157
+ try :
158
+ while True :
159
+ gevent .sleep (1 )
160
+ finally :
161
+ server_bufchan .close ()
162
+ server_coro = gevent .spawn (server_fn )
156
163
157
164
gevent .sleep (TIME_FACTOR * 3 )
158
165
print 'CLOSE CLIENT SOCKET!!!'
159
166
client_bufchan .close ()
160
167
client .close ()
161
168
if sys .version_info < (2 , 7 ):
162
- assert_raises (zerorpc .LostRemote , client_bufchan . recv )
169
+ assert_raises (zerorpc .LostRemote , server_coro . get () )
163
170
else :
164
171
with assert_raises (zerorpc .LostRemote ):
165
- client_bufchan . recv ()
172
+ server_coro . get ()
166
173
print 'SERVER LOST CLIENT :)'
167
- server_bufchan .close ()
168
174
server .close ()
169
175
170
176
@@ -178,16 +184,11 @@ def test_do_some_req_rep():
178
184
client_events .connect (endpoint )
179
185
client = zerorpc .ChannelMultiplexer (client_events , ignore_broadcast = True )
180
186
181
- client_channel = client .channel ()
182
- client_hbchan = zerorpc .HeartBeatOnChannel (client_channel , freq = TIME_FACTOR * 2 )
183
- client_bufchan = zerorpc .BufferedChannel (client_hbchan )
184
-
185
- event = server .recv ()
186
- server_channel = server .channel (event )
187
- server_hbchan = zerorpc .HeartBeatOnChannel (server_channel , freq = TIME_FACTOR * 2 )
188
- server_bufchan = zerorpc .BufferedChannel (server_hbchan )
189
187
190
188
def client_do ():
189
+ client_channel = client .channel ()
190
+ client_hbchan = zerorpc .HeartBeatOnChannel (client_channel , freq = TIME_FACTOR * 2 )
191
+ client_bufchan = zerorpc .BufferedChannel (client_hbchan )
191
192
for x in xrange (20 ):
192
193
client_bufchan .emit ('add' , (x , x * x ))
193
194
event = client_bufchan .recv ()
@@ -199,6 +200,11 @@ def client_do():
199
200
coro_pool .spawn (client_do )
200
201
201
202
def server_do ():
203
+ event = server .recv ()
204
+ server_channel = server .channel (event )
205
+ server_hbchan = zerorpc .HeartBeatOnChannel (server_channel , freq = TIME_FACTOR * 2 )
206
+ server_bufchan = zerorpc .BufferedChannel (server_hbchan )
207
+
202
208
for x in xrange (20 ):
203
209
event = server_bufchan .recv ()
204
210
assert event .name == 'add'
@@ -389,18 +395,22 @@ def test_congestion_control_server_pushing():
389
395
390
396
client_channel = client .channel ()
391
397
client_hbchan = zerorpc .HeartBeatOnChannel (client_channel , freq = TIME_FACTOR * 2 )
392
- client_bufchan = zerorpc .BufferedChannel (client_hbchan )
398
+ client_bufchan = zerorpc .BufferedChannel (client_hbchan , inqueue_size = 100 )
393
399
394
400
event = server .recv ()
395
401
server_channel = server .channel (event )
396
402
server_hbchan = zerorpc .HeartBeatOnChannel (server_channel , freq = TIME_FACTOR * 2 )
397
- server_bufchan = zerorpc .BufferedChannel (server_hbchan )
403
+ server_bufchan = zerorpc .BufferedChannel (server_hbchan , inqueue_size = 100 )
404
+
405
+ read_cnt = 0
398
406
399
407
def client_do ():
400
408
for x in xrange (200 ):
401
409
event = client_bufchan .recv ()
402
410
assert event .name == 'coucou'
403
411
assert event .args == x
412
+ read_cnt += 1
413
+ raise Exception ('CLIENT DONE' )
404
414
405
415
coro_pool = gevent .pool .Pool ()
406
416
coro_pool .spawn (client_do )
@@ -409,30 +419,37 @@ def server_do():
409
419
if sys .version_info < (2 , 7 ):
410
420
def _do_with_assert_raises ():
411
421
for x in xrange (200 ):
412
- server_bufchan .emit ('coucou' , x , timeout = TIME_FACTOR * 0 ) # will fail when x == 1
422
+ server_bufchan .emit ('coucou' , x , timeout = 0 ) # will fail when x == 1
413
423
assert_raises (zerorpc .TimeoutExpired , _do_with_assert_raises )
414
424
else :
415
425
with assert_raises (zerorpc .TimeoutExpired ):
416
426
for x in xrange (200 ):
417
- server_bufchan .emit ('coucou' , x , timeout = TIME_FACTOR * 0 ) # will fail when x == 1
427
+ server_bufchan .emit ('coucou' , x , timeout = 0 ) # will fail when x == 1
418
428
server_bufchan .emit ('coucou' , 1 ) # block until receiver is ready
419
429
if sys .version_info < (2 , 7 ):
420
430
def _do_with_assert_raises ():
421
431
for x in xrange (2 , 200 ):
422
- server_bufchan .emit ('coucou' , x , timeout = TIME_FACTOR * 0 ) # will fail when x == 100
432
+ server_bufchan .emit ('coucou' , x , timeout = 0 ) # will fail when x == 100
423
433
assert_raises (zerorpc .TimeoutExpired , _do_with_assert_raises )
424
434
else :
425
435
with assert_raises (zerorpc .TimeoutExpired ):
426
436
for x in xrange (2 , 200 ):
427
- server_bufchan .emit ('coucou' , x , timeout = TIME_FACTOR * 0 ) # will fail when x == 100
428
- for x in xrange (101 , 200 ):
437
+ server_bufchan .emit ('coucou' , x , timeout = 0 ) # will fail when x == 100
438
+ for x in xrange (read_cnt , 200 ):
429
439
server_bufchan .emit ('coucou' , x ) # block until receiver is ready
440
+ raise Exception ('SERVER DONE' )
430
441
431
442
432
443
coro_pool .spawn (server_do )
433
-
434
- coro_pool .join ()
435
- client_bufchan .close ()
436
- client .close ()
437
- server_bufchan .close ()
438
- server .close ()
444
+ try :
445
+ coro_pool .join ()
446
+ except zerorpc .LostRemote :
447
+ pass
448
+ finally :
449
+ try :
450
+ client_bufchan .close ()
451
+ client .close ()
452
+ server_bufchan .close ()
453
+ server .close ()
454
+ except Exception :
455
+ pass
0 commit comments