diff --git a/oslo/messaging/_drivers/amqpdriver.py b/oslo/messaging/_drivers/amqpdriver.py index 903f84826..a1cfd8597 100644 --- a/oslo/messaging/_drivers/amqpdriver.py +++ b/oslo/messaging/_drivers/amqpdriver.py @@ -309,10 +309,16 @@ class AMQPDriverBase(base.BaseDriver): return sp def _get_connection(self, pooled=True): + # FIXME(markmc): we don't yet have a connection pool for each + # Transport instance, so we'll only use the pool with the + # transport configuration from the config file + server_params = self._server_params or None + if server_params: + pooled = False return rpc_amqp.ConnectionContext(self.conf, self._connection_pool, pooled=pooled, - server_params=self._server_params) + server_params=server_params) def _get_reply_q(self): with self._reply_q_lock: diff --git a/tests/test_rabbit.py b/tests/test_rabbit.py index fc753c1b4..dd346fcc4 100644 --- a/tests/test_rabbit.py +++ b/tests/test_rabbit.py @@ -48,7 +48,7 @@ class TestRabbitDriverLoad(test_utils.BaseTestCase): class TestRabbitTransportURL(test_utils.BaseTestCase): scenarios = [ - ('none', dict(url=None, expected={})), + ('none', dict(url=None, expected=None)), ('empty', dict(url='rabbit:///', expected=dict(virtual_host=''))), @@ -84,28 +84,33 @@ class TestRabbitTransportURL(test_utils.BaseTestCase): def setUp(self): super(TestRabbitTransportURL, self).setUp() + self.messaging_conf.transport_driver = 'rabbit' self.messaging_conf.in_memory = True - def test_transport_url(self): + self._server_params = [] cnx_init = rabbit_driver.Connection.__init__ - passed_params = [] - def record_params(self, conf, server_params=None): - passed_params.append(server_params) - return cnx_init(self, conf, server_params) + def record_params(cnx, conf, server_params=None): + self._server_params.append(server_params) + return cnx_init(cnx, conf, server_params) + + def dummy_send(cnx, topic, msg, timeout=None): + pass self.stubs.Set(rabbit_driver.Connection, '__init__', record_params) + self.stubs.Set(rabbit_driver.Connection, 'topic_send', dummy_send) - transport = messaging.get_transport(self.conf, self.url) + self._driver = messaging.get_transport(self.conf, self.url)._driver + self._target = messaging.Target(topic='testtopic') - driver = transport._driver + def test_transport_url_listen(self): + self._driver.listen(self._target) + self.assertEqual(self._server_params[0], self.expected) - target = messaging.Target(topic='testtopic') - - driver.listen(target) - - self.assertEqual(passed_params[0], self.expected) + def test_transport_url_send(self): + self._driver.send(self._target, {}, {}) + self.assertEqual(self._server_params[0], self.expected) class TestSendReceive(test_utils.BaseTestCase):