From 59ec3f158e6836273111807268c6f5c0872e2b39 Mon Sep 17 00:00:00 2001
From: Ralph Bean <rbean@redhat.com>
Date: Wed, 10 Oct 2012 13:10:17 -0400
Subject: [PATCH 2/3] Fixup pubsub tests for zeromq3.
---
txzmq/test/test_pubsub.py | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/txzmq/test/test_pubsub.py b/txzmq/test/test_pubsub.py
index 6f98418..6c79fd8 100644
--- a/txzmq/test/test_pubsub.py
+++ b/txzmq/test/test_pubsub.py
@@ -8,6 +8,8 @@ from txzmq.factory import ZmqFactory
from txzmq.pubsub import ZmqPubConnection, ZmqSubConnection
from txzmq.test import _wait
+import time
+
class ZmqTestSubConnection(ZmqSubConnection):
def gotMessage(self, message, tag):
@@ -48,13 +50,18 @@ class ZmqConnectionTestCase(unittest.TestCase):
self.factory.shutdown()
def test_send_recv(self):
+ # For unknown reasons, this only works with zeromq3 if the sub socket is
+ # connecting and the pub socket is binding. It works both ways with
+ # zeromq2.
r = ZmqTestSubConnection(
- self.factory, ZmqEndpoint(ZmqEndpointType.bind, "ipc://test-sock"))
- s = ZmqPubConnection(
self.factory, ZmqEndpoint(ZmqEndpointType.connect,
"ipc://test-sock"))
+ s = ZmqPubConnection(
+ self.factory, ZmqEndpoint(ZmqEndpointType.bind,
+ "ipc://test-sock"))
r.subscribe('tag')
+ time.sleep(0.5)
s.publish('xyz', 'different-tag')
s.publish('abcd', 'tag1')
s.publish('efgh', 'tag2')
@@ -87,19 +94,23 @@ class ZmqConnectionTestCase(unittest.TestCase):
return _wait(0.2).addCallback(check)
def test_send_recv_multiple_endpoints(self):
- r = ZmqTestSubConnection(
- self.factory,
- ZmqEndpoint(ZmqEndpointType.bind, "tcp://127.0.0.1:5556"))
- r.addEndpoints([ZmqEndpoint(ZmqEndpointType.bind,
- "inproc://endpoint")])
+ # For unknown reasons, this only works with zeromq3 if the sub socket is
+ # connecting and the pub socket is binding. It works both ways with
+ # zeromq2.
s1 = ZmqPubConnection(
self.factory,
- ZmqEndpoint(ZmqEndpointType.connect, "tcp://127.0.0.1:5556"))
+ ZmqEndpoint(ZmqEndpointType.bind, "tcp://127.0.0.1:5556"))
s2 = ZmqPubConnection(
self.factory,
- ZmqEndpoint(ZmqEndpointType.connect, "inproc://endpoint"))
+ ZmqEndpoint(ZmqEndpointType.bind, "inproc://endpoint"))
+ r = ZmqTestSubConnection(
+ self.factory,
+ ZmqEndpoint(ZmqEndpointType.connect, "tcp://127.0.0.1:5556"))
+ r.addEndpoints([ZmqEndpoint(ZmqEndpointType.connect,
+ "inproc://endpoint")])
r.subscribe('')
+ time.sleep(0.5)
s1.publish('111', 'tag1')
s2.publish('222', 'tag2')
--
1.7.12.1