summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-08-12 01:14:12 +0000
committerGerrit Code Review <review@openstack.org>2013-08-12 01:14:12 +0000
commita7d7eb660e1e8d5bb0f849956737b5cf3ddb4139 (patch)
tree71f8c07ffcbd02b4cacab6e128b1df67c8b12a8e
parent8cb17b8041f71b8c5c59ce5dd25653248ea3303a (diff)
parent5fa7f93d091d0e5ab82f59709949ce6491610b68 (diff)
downloadoslo-messaging-a7d7eb660e1e8d5bb0f849956737b5cf3ddb4139.tar.gz
Merge "Fix handling expected exceptions in rabbit driver"
-rw-r--r--oslo/messaging/_drivers/amqpdriver.py3
-rw-r--r--tests/test_rabbit.py14
2 files changed, 16 insertions, 1 deletions
diff --git a/oslo/messaging/_drivers/amqpdriver.py b/oslo/messaging/_drivers/amqpdriver.py
index 40c1fcc..b20a61c 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 31c03f5..06d21a0 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()