diff options
-rw-r--r-- | tests/unit/rpc/test_zmq.py | 19 | ||||
-rw-r--r-- | tests/utils.py | 1 |
2 files changed, 14 insertions, 6 deletions
diff --git a/tests/unit/rpc/test_zmq.py b/tests/unit/rpc/test_zmq.py index 2f0c20d..2aac2b3 100644 --- a/tests/unit/rpc/test_zmq.py +++ b/tests/unit/rpc/test_zmq.py @@ -23,6 +23,7 @@ eventlet.monkey_patch() import logging import os +import socket import fixtures @@ -44,17 +45,23 @@ LOG = logging.getLogger(__name__) FLAGS = cfg.CONF +def get_unused_port(): + """ + Returns an unused port on localhost. + """ + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.bind(('localhost', 0)) + addr, port = s.getsockname() + s.close() + return port + + class _RpcZmqBaseTestCase(common.BaseRpcTestCase): - # TESTCNT needs to be a class var as each run - # by subclasses must have a unique identifier - TESTCNT = 0 rpc = impl_zmq def setUp(self, topic='test', topic_nested='nested'): if not impl_zmq: self.skipTest("ZeroMQ library required") - _RpcZmqBaseTestCase.TESTCNT += 1 - testcnt = _RpcZmqBaseTestCase.TESTCNT self.reactor = None self.rpc = impl_zmq @@ -74,7 +81,7 @@ class _RpcZmqBaseTestCase(common.BaseRpcTestCase): # between tearDown() and setUp() # TODO(mordred): replace this with testresources once we're on # testr - self.config(rpc_zmq_port=9500 + testcnt) + self.config(rpc_zmq_port=get_unused_port()) internal_ipc_dir = self.useFixture(fixtures.TempDir()).path self.config(rpc_zmq_ipc_dir=internal_ipc_dir) diff --git a/tests/utils.py b/tests/utils.py index 3c749f6..f9854ca 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -35,6 +35,7 @@ class BaseTestCase(testtools.TestCase): self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs self.addCleanup(CONF.reset) self.useFixture(fixtures.FakeLogger('openstack.common')) + self.useFixture(fixtures.Timeout(30, True)) def config(self, **kw): """ |