Download tests/gateway/test_api_session_preflight.py from SaylorTwift/hermes-agent: direct link, hf CLI and curl.
- Browser
- Download file 1.73 kB
-
https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/tests/gateway/test_api_session_preflight.py
- Command line
-
hf download hf://SaylorTwift/hermes-agent/tests/gateway/test_api_session_preflight.py
-
curl -L -o test_api_session_preflight.py https://huggingface.co/SaylorTwift/hermes-agent/resolve/main/tests/gateway/test_api_session_preflight.py
1.73 kB
| """The browser can send the advertised continuation header only from allowed origins.""" | |
| import secrets | |
| import pytest | |
| from aiohttp import ClientSession | |
| from gateway.config import PlatformConfig | |
| from gateway.platforms.api_server import APIServerAdapter, _STATIC_FEATURE_FLAGS | |
| async def test_continuation_preflight_preserves_origin_allowlist(): | |
| adapter = APIServerAdapter(PlatformConfig(enabled=True, extra={ | |
| "host": "127.0.0.1", "port": 0, "key": secrets.token_hex(32), | |
| "cors_origins": ["https://allowed.example"], | |
| })) | |
| assert await adapter.connect() | |
| try: | |
| port = adapter._site._server.sockets[0].getsockname()[1] | |
| header = _STATIC_FEATURE_FLAGS["session_continuity_header"] | |
| async with ClientSession() as client: | |
| for origin, expected in [("https://allowed.example", 200), ("https://denied.example", 403)]: | |
| async with client.options(f"http://127.0.0.1:{port}/v1/chat/completions", headers={ | |
| "Origin": origin, "Access-Control-Request-Method": "POST", | |
| "Access-Control-Request-Headers": f"Authorization, Content-Type, {header}", | |
| }) as response: | |
| assert response.status == expected | |
| if expected == 200: | |
| allowed = {h.strip().lower() for h in response.headers["Access-Control-Allow-Headers"].split(",")} | |
| assert header.lower() in allowed | |
| assert response.headers["Access-Control-Allow-Origin"] == origin | |
| else: | |
| assert "Access-Control-Allow-Origin" not in response.headers | |
| finally: | |
| await adapter.disconnect() | |