def test_get_message_read(self, publish_mock): # Check the format of the read message marker. token = views.new_token(Request(post={}))['token'] request = Request(post={ 'action': 'read', 'key': 'key' }, matchdict={'queue': token}) response = views.new_message(request)['messages'][0] req = Request(matchdict={'queue': token}) self.assertListEqual( views.get_messages(req)['messages'], [{ 'body': { 'read': 'key' }, 'queue': '/queue/%s/' % token, 'key': response['key'], 'timestamp': str(response['timestamp']) }]) # The format should match the pubsub'd message. expected = views.get_messages(req)['messages'][0] publish_mock.assert_called_with(request, token, expected)
def test_get_messages_since(self, time_mock): # Check that we honor the since parameter. time_mock.time = [3, 2, 1].pop queue = self.queuey.new_queue() self.storage.new_queue(queue, 'user', 'domain') msg = json.dumps({'queue': queue, 'body': {}}) key1 = self.queuey.new_message(queue, msg)['messages'][0]['key'] key2 = self.queuey.new_message(queue, msg)['messages'][0]['key'] request = Request(params={ 'since': 1, 'token': 'user' }, matchdict={'queue': queue}) eq_( views.get_messages(request), { 'messages': [{ 'body': {}, 'timestamp': '2', 'queue': '/queue/%s/' % queue, 'key': key2 }] })
def test_get_message_read(self, publish_mock): # Check the format of the read message marker. token = views.new_token(Request(post={}))['token'] request = Request(post={'action': 'read', 'key': 'key'}, matchdict={'queue': token}) response = views.new_message(request)['messages'][0] req = Request(matchdict={'queue': token}) self.assertListEqual(views.get_messages(req)['messages'], [{'body': {'read': 'key'}, 'queue': '/queue/%s/' % token, 'key': response['key'], 'timestamp': str(response['timestamp'])}]) # The format should match the pubsub'd message. expected = views.get_messages(req)['messages'][0] publish_mock.assert_called_with(request, token, expected)
def test_get_messages_since(self, time_mock): # Check that we honor the since parameter. time_mock.time = [3, 2, 1].pop queue = self.queuey.new_queue() self.storage.new_queue(queue, 'user', 'domain') msg = json.dumps({'queue': queue, 'body': {}}) key1 = self.queuey.new_message(queue, msg)['messages'][0]['key'] key2 = self.queuey.new_message(queue, msg)['messages'][0]['key'] request = Request(params={'since': 1, 'token': 'user'}, matchdict={'queue': queue}) eq_(views.get_messages(request), { 'messages': [{'body': {}, 'timestamp': '2', 'queue': '/queue/%s/' % queue, 'key': key2}]})
def test_get_messages_404(self): # Asking for a queue without a matching token returns a 404. request = Request(params={'token': 'ok'}, matchdict={'queue': 'queue'}) eq_(views.get_messages(request).code, 404)