Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8c612a2

Browse files
committed
Fix flickering unit test
HeartBeatOnChannel raises exceptions directly to its parent's coroutine so it needs to run in the same coroutine as the test server/client.
1 parent d913118 commit 8c612a2

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

tests/test_buffered_channel.py

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -393,29 +393,28 @@ def test_congestion_control_server_pushing():
393393
client_events.connect(endpoint)
394394
client = zerorpc.ChannelMultiplexer(client_events, ignore_broadcast=True)
395395

396-
client_channel = client.channel()
397-
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=TIME_FACTOR * 2)
398-
client_bufchan = zerorpc.BufferedChannel(client_hbchan, inqueue_size=100)
399-
400-
event = server.recv()
401-
server_channel = server.channel(event)
402-
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=TIME_FACTOR * 2)
403-
server_bufchan = zerorpc.BufferedChannel(server_hbchan, inqueue_size=100)
404-
405396
read_cnt = 0
406397

407398
def client_do():
399+
client_channel = client.channel()
400+
client_hbchan = zerorpc.HeartBeatOnChannel(client_channel, freq=TIME_FACTOR * 2)
401+
client_bufchan = zerorpc.BufferedChannel(client_hbchan, inqueue_size=100)
408402
for x in xrange(200):
409403
event = client_bufchan.recv()
410404
assert event.name == 'coucou'
411405
assert event.args == x
406+
global read_cnt
412407
read_cnt += 1
413-
raise Exception('CLIENT DONE')
408+
client_bufchan.close()
414409

415410
coro_pool = gevent.pool.Pool()
416411
coro_pool.spawn(client_do)
417412

418413
def server_do():
414+
event = server.recv()
415+
server_channel = server.channel(event)
416+
server_hbchan = zerorpc.HeartBeatOnChannel(server_channel, freq=TIME_FACTOR * 2)
417+
server_bufchan = zerorpc.BufferedChannel(server_hbchan, inqueue_size=100)
419418
if sys.version_info < (2, 7):
420419
def _do_with_assert_raises():
421420
for x in xrange(200):
@@ -437,19 +436,13 @@ def _do_with_assert_raises():
437436
server_bufchan.emit('coucou', x, timeout=0) # will fail when x == 100
438437
for x in xrange(read_cnt, 200):
439438
server_bufchan.emit('coucou', x) # block until receiver is ready
440-
raise Exception('SERVER DONE')
441-
439+
server_bufchan.close()
442440

443441
coro_pool.spawn(server_do)
444442
try:
445443
coro_pool.join()
446444
except zerorpc.LostRemote:
447445
pass
448446
finally:
449-
try:
450-
client_bufchan.close()
451-
client.close()
452-
server_bufchan.close()
453-
server.close()
454-
except Exception:
455-
pass
447+
client.close()
448+
server.close()

0 commit comments

Comments
 (0)