def test_roundtrip(self): for msg in generate_test_messages(): for serializer in self.serializers: ## serialize message bytes, binary = serializer.serialize(msg) ## unserialize message again msg2 = serializer.unserialize(bytes, binary) ## must be equal: message roundtrips via the serializer self.assertEqual([msg], msg2)
def test_caching(self): for msg in generate_test_messages(): ## message serialization cache is initially empty self.assertEqual(msg._serialized, {}) for serializer in self.serializers: ## verify message serialization is not yet cached self.assertFalse(serializer._serializer in msg._serialized) bytes, binary = serializer.serialize(msg) ## now the message serialization must be cached self.assertTrue(serializer._serializer in msg._serialized) self.assertEqual(msg._serialized[serializer._serializer], bytes) ## and after resetting the serialization cache, message ## serialization is gone msg.uncache() self.assertFalse(serializer._serializer in msg._serialized)
def test_caching(self): for msg in generate_test_messages(): ## message serialization cache is initially empty self.assertEqual(msg._serialized, {}) for serializer in self.serializers: ## verify message serialization is not yet cached self.assertFalse(serializer._serializer in msg._serialized) payload, binary = serializer.serialize(msg) ## now the message serialization must be cached self.assertTrue(serializer._serializer in msg._serialized) self.assertEqual(msg._serialized[serializer._serializer], payload) ## and after resetting the serialization cache, message ## serialization is gone msg.uncache() self.assertFalse(serializer._serializer in msg._serialized)