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

Skip to content

Commit 2eeac40

Browse files
committed
Fix a broken unit test
For who is intersted by the resolution: - a channel cannot be considered opened until the endpoint answered - the code was sending 2 events in a row... - the first event will open the channel - but if the second event arrive "too fast", the channel wont be "fully opened" The solution: - wrap the channel in a BufferedChannel, which automatically prevent sending more than one message until the channel is opened fully.
1 parent dd30e2c commit 2eeac40

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

tests/test_wrapped_events.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525

2626
import random
27+
import gevent
2728

2829
from zerorpc import zmq
2930
import zerorpc
@@ -74,11 +75,14 @@ def test_multiple_sub_events():
7475

7576
client_channel1 = client.channel()
7677
client_channel_events1 = zerorpc.WrappedEvents(client_channel1)
77-
client_channel2 = client.channel()
78+
client_channel2 = zerorpc.BufferedChannel(client.channel())
7879
client_channel_events2 = zerorpc.WrappedEvents(client_channel2)
79-
client_channel_events1.emit('coucou1', 43)
80-
client_channel_events2.emit('coucou2', 44)
81-
client_channel_events2.emit('another', 42)
80+
81+
def emitstuff():
82+
client_channel_events1.emit('coucou1', 43)
83+
client_channel_events2.emit('coucou2', 44)
84+
client_channel_events2.emit('another', 42)
85+
gevent.spawn(emitstuff)
8286

8387
event = server.recv()
8488
print event
@@ -89,7 +93,7 @@ def test_multiple_sub_events():
8993
server_channel = server.channel(event)
9094
server_channel_events = zerorpc.WrappedEvents(server_channel)
9195
event = server_channel_events.recv()
92-
print event
96+
print 'ch1:', event
9397
assert event.name == 'coucou1'
9498
assert event.args == 43
9599

@@ -100,14 +104,16 @@ def test_multiple_sub_events():
100104
subevent = event.args
101105
print 'subevent:', subevent
102106
server_channel = server.channel(event)
103-
server_channel_events = zerorpc.WrappedEvents(server_channel)
107+
108+
server_channel_events = zerorpc.BufferedChannel(server_channel)
109+
server_channel_events = zerorpc.WrappedEvents(server_channel_events)
104110
event = server_channel_events.recv()
105-
print event
111+
print 'ch2:', event
106112
assert event.name == 'coucou2'
107113
assert event.args == 44
108114

109115
event = server_channel_events.recv()
110-
print event
116+
print 'ch2:', event
111117
assert event.name == 'another'
112118
assert event.args == 42
113119

0 commit comments

Comments
 (0)