def test_queue_request_store_json(api_server, redis): url = urljoin(api_server, '/callbacks/app/queue/') yield from aiohttp.request('POST', url, data=json_payload, headers={'X-Region': 'Sao_Paulo'}) db_json = decode_json(redis.rpop('app-queue').decode('utf-8')) assert db_json['header']['X-REGION'] == 'Sao_Paulo' assert db_json['method'] == 'POST' assert db_json['data'] == payload
def last_callback(request): app = request.match_info['app'] queue = request.match_info['queue'] key = yield from generate_key(app, queue) with (yield from request.app['redis_pool']) as redis: request_ = yield from redis.rpop(key) request_ = decode_json(request_) data = json.dumps({'request': request_}) return web.Response(text=data, content_type='application/json')
def all_callback(request): app = request.match_info['app'] queue = request.match_info['queue'] key = yield from generate_key(app, queue) with (yield from request.app['redis_pool']) as redis: requests = yield from redis.lrange(key, 0, -1) requests = [decode_json(r) for r in requests] redis.delete(key) data = json.dumps({'requests': requests}) return web.Response(text=data, content_type='application/json')