summaryrefslogtreecommitdiffstats
path: root/tests/unit/rpc
diff options
context:
space:
mode:
authorEric Windisch <eric@cloudscaling.com>2013-02-09 00:57:47 -0500
committerEric Windisch <eric@cloudscaling.com>2013-02-19 14:43:19 -0500
commita60367820d826c536018b036480f7061b814f1a1 (patch)
tree76c6c7280e135c8a008d1eef27843356d1acdc86 /tests/unit/rpc
parent70891c271e011f59792933eaf65c3214493ef14a (diff)
downloadoslo-a60367820d826c536018b036480f7061b814f1a1.tar.gz
oslo-a60367820d826c536018b036480f7061b814f1a1.tar.xz
oslo-a60367820d826c536018b036480f7061b814f1a1.zip
Implement replay detection.
Bumps the envelope revision to 2.1 Change-Id: Ib0260a0c62e3d312d2e3448a125bed64d861319e
Diffstat (limited to 'tests/unit/rpc')
-rw-r--r--tests/unit/rpc/amqp.py8
-rw-r--r--tests/unit/rpc/test_common.py32
2 files changed, 37 insertions, 3 deletions
diff --git a/tests/unit/rpc/amqp.py b/tests/unit/rpc/amqp.py
index 1e4733c..c7215ea 100644
--- a/tests/unit/rpc/amqp.py
+++ b/tests/unit/rpc/amqp.py
@@ -100,14 +100,18 @@ class BaseRpcAMQPTestCase(common.BaseRpcTestCase):
}
self.rpc.notify(FLAGS, self.context, 'notifications.info', raw_msg,
envelope=True)
- self.assertEqual(self.test_msg, msg)
+ for k, v in msg.items():
+ self.assertIn(k, self.test_msg)
+ self.assertEqual(self.test_msg[k], v)
# 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)
+ for k, v in msg.items():
+ self.assertIn(k, self.test_msg)
+ self.assertEqual(self.test_msg[k], v)
def test_single_reply_queue_on_has_ids(
self, single_reply_queue_for_callee_off=False):
diff --git a/tests/unit/rpc/test_common.py b/tests/unit/rpc/test_common.py
index 976da84..b4d4cf4 100644
--- a/tests/unit/rpc/test_common.py
+++ b/tests/unit/rpc/test_common.py
@@ -250,10 +250,40 @@ class RpcCommonTestCase(test_utils.BaseTestCase):
'oslo.message': jsonutils.dumps(msg)}
serialized = rpc_common.serialize_msg(msg)
- self.assertEqual(s_msg, rpc_common.serialize_msg(msg))
+ for k, v in s_msg.items():
+ self.assertIn(k, serialized)
+ self.assertEqual(serialized[k], v)
self.assertEqual(msg, rpc_common.deserialize_msg(serialized))
+ def test_serialize_msg_v2_1(self):
+ self.stubs.Set(rpc_common, '_SEND_RPC_ENVELOPE', True)
+ msg = {'foo': 'bar'}
+ s_msg = {'oslo.version': rpc_common._RPC_ENVELOPE_VERSION,
+ 'oslo.message': jsonutils.dumps(msg),
+ 'oslo.nonce': ''}
+ serialized = rpc_common.serialize_msg(msg)
+
+ for k, v in s_msg.items():
+ self.assertIn(k, serialized)
+
+ if k == 'oslo.nonce':
+ # This key's value is set by serialize_msg
+ re_uuid = re.compile(r'[0-9a-f]{32}$', re.I)
+ self.assertTrue(re_uuid.match(serialized[k]))
+ continue
+
+ self.assertEqual(serialized[k], v)
+
+ self.assertEqual(msg, rpc_common.deserialize_msg(serialized))
+
+ def test_serialize_msg_v2_1(self):
+ self.stubs.Set(rpc_common, '_SEND_RPC_ENVELOPE', True)
+ msg = {'foo': 'bar'}
+ serialized = rpc_common.serialize_msg(msg)
+ self.assertIn('oslo.nonce', serialized)
+ self.assertEqual(msg, rpc_common.deserialize_msg(serialized))
+
def test_deserialize_msg_no_envelope(self):
self.assertEqual(1, rpc_common.deserialize_msg(1))
self.assertEqual([], rpc_common.deserialize_msg([]))