def test_to_dictionary_returns_instance_variables_as_dictionary(self): message = Message() message.banana = 5 message.apple = 7 message.inner_dictionary = { 'foo': 2, 'bar': 4 } dictionary = message.to_dictionary() self.assertEqual(7, dictionary['apple']) self.assertEqual(4, dictionary['inner_dictionary']['bar']) self.assertEqual(3, len(dictionary.keys()))
def test_calling_delete_removes_the_message_from_mongodb(self): collection = Connection().capsulemq_test.queue_test collection.insert({ 'routing_key': 'foobar', 'apple': 3, 'banana': 5, '_meta': { 'timestamp': 2523939, 'expire': 20393, 'expired': False } }) raw_message = collection.find_one({'_meta.expired': False}) self.assertEqual(3, raw_message['apple']) message = Message(raw_message, queue_collection=collection) message.delete() self.assertEqual(0, collection.find({'_meta.expired': False}).count())
def test_reading_from_the_queue_returns_a_message_object(self): queue = Queue( database='capsulemq_test', queue='queue_test' ) write_message = Message() write_message.apple = 5 write_message.banana = 6 write_message.inner_object = { 'foo': 1, 'bar': 2 } queue.write(write_message) read_message = queue.read()[0] self.assertEqual(5, read_message.apple) self.assertEqual(2, read_message.inner_object['bar']) self.assertEqual(3, len(read_message.to_dictionary().keys()))
def test_writing_a_message_to_the_queue_populates_it_within_mongodb(self): queue = Queue( database='capsulemq_test', queue='queue_test' ) message = Message() message.apple = 5 message.banana = 6 message.inner_object = { 'foo': 1, 'bar': 2 } queue.write(message) collection = Connection().capsulemq_test.queue_test obj = collection.find_one({}) self.assertEqual(6, obj['banana']) self.assertEqual(2, obj['inner_object']['bar']) self.assertTrue(obj['_meta']['expire']) self.assertTrue(obj['_meta']['timestamp'])