summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-01-06 05:55:28 +0000
committerGerrit Code Review <review@openstack.org>2013-01-06 05:55:28 +0000
commit5d4a9c99fe20085aa1c9afc130776ebe21574a7f (patch)
treeec0e3061c3b61bab03125483bfda599da924a579 /tests
parent193803bd4a812b75d92d7365e75a5f71606de549 (diff)
parentadffcd58fb09dafb0c4e128797b4a61a59087f9a (diff)
downloadoslo-5d4a9c99fe20085aa1c9afc130776ebe21574a7f.tar.gz
oslo-5d4a9c99fe20085aa1c9afc130776ebe21574a7f.tar.xz
oslo-5d4a9c99fe20085aa1c9afc130776ebe21574a7f.zip
Merge "Optionally add message envelope to notifications."
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/rpc/common.py36
-rw-r--r--tests/unit/test_notifier.py19
2 files changed, 51 insertions, 4 deletions
diff --git a/tests/unit/rpc/common.py b/tests/unit/rpc/common.py
index 70a1ad0..9838c6f 100644
--- a/tests/unit/rpc/common.py
+++ b/tests/unit/rpc/common.py
@@ -29,6 +29,7 @@ import nose
from openstack.common import cfg
from openstack.common import exception
from openstack.common.gettextutils import _
+from openstack.common import jsonutils
from openstack.common.rpc import amqp as rpc_amqp
from openstack.common.rpc import common as rpc_common
from openstack.common.rpc import dispatcher as rpc_dispatcher
@@ -276,6 +277,41 @@ class BaseRpcAMQPTestCase(BaseRpcTestCase):
"args": {"value": value}})
self.assertEqual(value, result)
+ def test_notification_envelope(self):
+ raw_msg = {'a': 'b'}
+ self.test_msg = None
+
+ def fake_notify_send(_conn, topic, msg):
+ self.test_msg = msg
+
+ self.stubs.Set(self.rpc.Connection, 'notify_send', fake_notify_send)
+
+ self.rpc.notify(FLAGS, self.context, 'notifications.info', raw_msg,
+ envelope=False)
+ self.assertEqual(self.test_msg, raw_msg)
+
+ # Envelopes enabled, but not enabled for notifications
+ self.stubs.Set(rpc_common, '_SEND_RPC_ENVELOPE', True)
+ self.rpc.notify(FLAGS, self.context, 'notifications.info', raw_msg,
+ envelope=False)
+ self.assertEqual(self.test_msg, raw_msg)
+
+ # Now turn it on for notifications
+ msg = {
+ 'oslo.version': rpc_common._RPC_ENVELOPE_VERSION,
+ 'oslo.message': jsonutils.dumps(raw_msg),
+ }
+ self.rpc.notify(FLAGS, self.context, 'notifications.info', raw_msg,
+ envelope=True)
+ self.assertEqual(self.test_msg, msg)
+
+ # Make sure envelopes are still on notifications, even if turned off
+ # for general messages.
+ self.stubs.Set(rpc_common, '_SEND_RPC_ENVELOPE', False)
+ self.rpc.notify(FLAGS, self.context, 'notifications.info', raw_msg,
+ envelope=True)
+ self.assertEqual(self.test_msg, msg)
+
class TestReceiver(object):
"""Simple Proxy class so the consumer has methods to call.
diff --git a/tests/unit/test_notifier.py b/tests/unit/test_notifier.py
index 1cabae0..be58da2 100644
--- a/tests/unit/test_notifier.py
+++ b/tests/unit/test_notifier.py
@@ -75,19 +75,30 @@ class NotifierTestCase(test_utils.BaseTestCase):
notifier_api.notify(ctxt, 'publisher_id', 'event_type',
notifier_api.WARN, dict(a=3))
- def test_send_rabbit_notification(self):
- self.stubs.Set(cfg.CONF, 'notification_driver',
- ['openstack.common.notifier.rabbit_notifier'])
+ def _test_rpc_notify(self, driver, envelope=False):
+ self.stubs.Set(cfg.CONF, 'notification_driver', [driver])
self.mock_notify = False
+ self.envelope = False
- def mock_notify(cls, *args):
+ def mock_notify(cls, *args, **kwargs):
self.mock_notify = True
+ self.envelope = kwargs.get('envelope', False)
self.stubs.Set(rpc, 'notify', mock_notify)
notifier_api.notify(ctxt, 'publisher_id', 'event_type',
notifier_api.WARN, dict(a=3))
self.assertEqual(self.mock_notify, True)
+ self.assertEqual(self.envelope, envelope)
+
+ def test_rabbit_notifier(self):
+ self._test_rpc_notify('openstack.common.notifier.rabbit_notifier')
+
+ def test_rpc_notifier(self):
+ self._test_rpc_notify('openstack.common.notifier.rpc_notifier')
+
+ def test_rpc_notifier2(self):
+ self._test_rpc_notify('openstack.common.notifier.rpc_notifier2', True)
def test_invalid_priority(self):
self.assertRaises(notifier_api.BadPriorityException,