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

Skip to content

Commit 3458689

Browse files
committed
Merge pull request 0rpc#17 from lopter/master
Add the methods argument in the Subscriber and Puller constructors
2 parents 3a4834c + 7de90e0 commit 3458689

File tree

2 files changed

+59
-11
lines changed

2 files changed

+59
-11
lines changed

tests/test_pubpush.py

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
import zerorpc
3030

3131

32-
def test_pushpull():
33-
endpoint = 'ipc://test_pushpull'
32+
def test_pushpull_inheritance():
33+
endpoint = 'ipc://test_pushpull_inheritance'
3434

3535
pusher = zerorpc.Pusher()
3636
pusher.bind(endpoint)
@@ -52,11 +52,11 @@ def lolita(self, a, b):
5252
print 'done'
5353

5454

55-
def test_pubsub():
56-
endpoint = 'ipc://test_pubsub'
55+
def test_pubsub_inheritance():
56+
endpoint = 'ipc://test_pubsub_inheritance'
5757

58-
pusher = zerorpc.Publisher()
59-
pusher.bind(endpoint)
58+
publisher = zerorpc.Publisher()
59+
publisher.bind(endpoint)
6060
trigger = gevent.event.Event()
6161

6262
class Subscriber(zerorpc.Subscriber):
@@ -65,11 +65,59 @@ def lolita(self, a, b):
6565
assert a + b == 3
6666
trigger.set()
6767

68-
puller = Subscriber()
68+
subscriber = Subscriber()
69+
subscriber.connect(endpoint)
70+
gevent.spawn(subscriber.run)
71+
72+
trigger.clear()
73+
publisher.lolita(1, 2)
74+
trigger.wait()
75+
print 'done'
76+
77+
78+
def test_pushpull_composite():
79+
endpoint = 'ipc://test_pushpull_composite'
80+
trigger = gevent.event.Event()
81+
82+
class Puller(object):
83+
def lolita(self, a, b):
84+
print 'lolita', a, b
85+
assert a + b == 3
86+
trigger.set()
87+
88+
pusher = zerorpc.Pusher()
89+
pusher.bind(endpoint)
90+
91+
service = Puller()
92+
puller = zerorpc.Puller(service)
6993
puller.connect(endpoint)
7094
gevent.spawn(puller.run)
7195

7296
trigger.clear()
7397
pusher.lolita(1, 2)
7498
trigger.wait()
7599
print 'done'
100+
101+
102+
def test_pubsub_composite():
103+
endpoint = 'ipc://test_pubsub_composite'
104+
trigger = gevent.event.Event()
105+
106+
class Subscriber(object):
107+
def lolita(self, a, b):
108+
print 'lolita', a, b
109+
assert a + b == 3
110+
trigger.set()
111+
112+
publisher = zerorpc.Publisher()
113+
publisher.bind(endpoint)
114+
115+
service = Subscriber()
116+
subscriber = zerorpc.Subscriber(service)
117+
subscriber.connect(endpoint)
118+
gevent.spawn(subscriber.run)
119+
120+
trigger.clear()
121+
publisher.lolita(1, 2)
122+
trigger.wait()
123+
print 'done'

zerorpc/core.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,7 @@ def __getattr__(self, method):
362362

363363
class Puller(SocketBase):
364364

365-
def __init__(self, methods=None, name=None, context=None,
366-
zmq_socket=zmq.PULL):
365+
def __init__(self, methods=None, context=None, zmq_socket=zmq.PULL):
367366
super(Puller, self).__init__(zmq_socket, context=context)
368367

369368
if methods is None:
@@ -413,6 +412,7 @@ def __init__(self, context=None):
413412

414413
class Subscriber(Puller):
415414

416-
def __init__(self, context=None):
417-
super(Subscriber, self).__init__(context=context, zmq_socket=zmq.SUB)
415+
def __init__(self, methods=None, context=None):
416+
super(Subscriber, self).__init__(methods=methods, context=context,
417+
zmq_socket=zmq.SUB)
418418
self._events.setsockopt(zmq.SUBSCRIBE, '')

0 commit comments

Comments
 (0)