Blob Blame History Raw
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