mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
test(middleware): add cache control coverage
This commit is contained in:
66
tests/middleware/test_cache_middleware.py
Normal file
66
tests/middleware/test_cache_middleware.py
Normal file
@@ -0,0 +1,66 @@
|
||||
import pytest
|
||||
from aiohttp import web
|
||||
from aiohttp.test_utils import make_mocked_request
|
||||
|
||||
from py.middleware.cache_middleware import cache_control
|
||||
|
||||
|
||||
async def invoke_middleware(path: str, response: web.Response) -> web.Response:
|
||||
async def handler(_request: web.Request) -> web.Response:
|
||||
return response
|
||||
|
||||
request = make_mocked_request("GET", path)
|
||||
return await cache_control(request, handler)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
"path",
|
||||
[
|
||||
"/static/app.js",
|
||||
"/assets/styles/site.css",
|
||||
"/data/index.json",
|
||||
],
|
||||
)
|
||||
async def test_static_files_force_no_cache(path: str) -> None:
|
||||
response = await invoke_middleware(path, web.Response())
|
||||
|
||||
assert response.headers["Cache-Control"] == "no-cache"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_non_media_paths_leave_headers_untouched() -> None:
|
||||
base_headers = {"X-Source": "handler"}
|
||||
response = await invoke_middleware(
|
||||
"/api/data", web.Response(headers=base_headers)
|
||||
)
|
||||
|
||||
assert "Cache-Control" not in response.headers
|
||||
assert response.headers["X-Source"] == "handler"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
"status, expected",
|
||||
[
|
||||
(200, "public, max-age=86400"),
|
||||
(404, "public, max-age=3600"),
|
||||
(302, "no-cache"),
|
||||
],
|
||||
)
|
||||
async def test_media_responses_set_expected_cache_control(status: int, expected: str) -> None:
|
||||
response = await invoke_middleware(
|
||||
"/images/sample.png", web.Response(status=status)
|
||||
)
|
||||
|
||||
assert response.headers.get("Cache-Control") == expected
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_existing_cache_control_header_preserved() -> None:
|
||||
response = await invoke_middleware(
|
||||
"/images/custom.jpg",
|
||||
web.Response(headers={"Cache-Control": "public, max-age=999"}),
|
||||
)
|
||||
|
||||
assert response.headers["Cache-Control"] == "public, max-age=999"
|
||||
Reference in New Issue
Block a user