Exemplo n.º 1
0
async def test_http_cache_middleware_2():
    class RequestMock:
        url = None

    m = HTTPCacheMiddleware(maxsize=1_000_000, ttl=2)
    request = RequestMock()
    request.url = "http:127.0.0.1:9090/v1/test1"
    response = HTTPResponse()
    response.body = {"data": "datatatata"}
    response.headers = {"custom_header_name": "custom_header_value"}
    assert await m.middleware_request(request) is None
    await m.middleware_response(request, response)
    assert response.headers.get("x-cache") == "MISS"
    response_check = await m.middleware_request(request)
    assert response
    assert response_check.body == response.body
    assert response_check.headers["x-cache"] == "HIT"
    del response.headers["x-cache"]
    del response_check.headers["x-cache"]
    assert response_check.headers == response.headers
    assert response_check.status == response.status
    await asyncio.sleep(2)
    assert await m.middleware_request(request) is None
Exemplo n.º 2
0
def order_get_response(res: response.HTTPResponse):
    orders = {}
    body = json.loads(res.body.decode())
    data = body.get('data')
    for order in data:
        order.pop('order_detail.order_id')
        order_id = order.get('order_id')
        detail = {
            'food_uuid': order.pop('food_uuid'),
            'food_name': order.pop('food_name'),
            'food_price': order.pop('food_price'),
            'calorie': order.pop('calorie'),
            'food_type': order.pop('food_type'),
            'is_refund': order.pop('order_detail.is_refund')
        }
        if order_id in orders:
            orders.get(order_id).get('order_detail').append(detail)
        else:
            order.update({'order_detail': [detail]})
            orders.update({order_id: order})
    data_new = [order for order_id, order in orders.items()]
    body.update({'data': data_new})
    res.body = json.dumps(body).encode()
    return res