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
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