diff --git a/oslo/messaging/_drivers/amqpdriver.py b/oslo/messaging/_drivers/amqpdriver.py index 40c1fcc82..b20a61cf0 100644 --- a/oslo/messaging/_drivers/amqpdriver.py +++ b/oslo/messaging/_drivers/amqpdriver.py @@ -40,7 +40,8 @@ class AMQPIncomingMessage(base.IncomingMessage): def _send_reply(self, conn, reply=None, failure=None, ending=False, log_failure=True): if failure: - failure = rpc_common.serialize_remote_exception(failure) + failure = rpc_common.serialize_remote_exception(failure, + log_failure) msg = {'result': reply, 'failure': failure} if ending: diff --git a/tests/test_rabbit.py b/tests/test_rabbit.py index 31c03f566..06d21a0da 100644 --- a/tests/test_rabbit.py +++ b/tests/test_rabbit.py @@ -24,6 +24,7 @@ import kombu import testscenarios from oslo import messaging +from oslo.messaging._drivers import common as driver_common from oslo.messaging._drivers import impl_rabbit as rabbit_driver from oslo.messaging.openstack.common import jsonutils from oslo.messaging import transport as msg_transport @@ -96,6 +97,14 @@ class TestSendReceive(test_utils.BaseTestCase): senders = [] replies = [] msgs = [] + errors = [] + + def stub_error(msg, *a, **kw): + if (a and len(a) == 1 and isinstance(a[0], dict) and a[0]): + a = a[0] + errors.append(str(msg) % a) + + self.stubs.Set(driver_common.LOG, 'error', stub_error) def send_and_wait_for_reply(i): try: @@ -150,6 +159,11 @@ class TestSendReceive(test_utils.BaseTestCase): else: self.assertEqual(reply, {'bar': order[i]}) + if not self.timeout and self.failure and not self.expected: + self.assertTrue(len(errors) > 0, errors) + else: + self.assertEqual(len(errors), 0, errors) + TestSendReceive.generate_scenarios()