Download tests/unit/test_api_auth.py from jlshu/vproxy: direct link, hf CLI and curl.
- Browser
- Download file 2.32 kB
-
https://huggingface.co/spaces/jlshu/vproxy/resolve/main/tests/unit/test_api_auth.py
- Command line
-
hf download hf://spaces/jlshu/vproxy/tests/unit/test_api_auth.py
-
curl -L -o test_api_auth.py https://huggingface.co/spaces/jlshu/vproxy/resolve/main/tests/unit/test_api_auth.py
2.32 kB
| from fastapi import Depends, FastAPI | |
| from fastapi.testclient import TestClient | |
| from aistudio_api.api.dependencies import require_api_key | |
| from aistudio_api.config import settings | |
| def _build_client() -> TestClient: | |
| app = FastAPI() | |
| async def protected(): | |
| return {"ok": True} | |
| return TestClient(app) | |
| def test_auth_is_disabled_when_no_api_key_is_configured(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset()) | |
| client = _build_client() | |
| response = client.get("/protected") | |
| assert response.status_code == 200 | |
| assert response.json() == {"ok": True} | |
| def test_bearer_token_is_accepted(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset({"secret-token"})) | |
| client = _build_client() | |
| response = client.get("/protected", headers={"Authorization": "Bearer secret-token"}) | |
| assert response.status_code == 200 | |
| assert response.json() == {"ok": True} | |
| def test_x_api_key_is_accepted(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset({"secret-token"})) | |
| client = _build_client() | |
| response = client.get("/protected", headers={"X-API-Key": "secret-token"}) | |
| assert response.status_code == 200 | |
| assert response.json() == {"ok": True} | |
| def test_x_goog_api_key_is_accepted(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset({"secret-token"})) | |
| client = _build_client() | |
| response = client.get("/protected", headers={"x-goog-api-key": "secret-token"}) | |
| assert response.status_code == 200 | |
| assert response.json() == {"ok": True} | |
| def test_query_param_key_is_accepted(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset({"secret-token"})) | |
| client = _build_client() | |
| response = client.get("/protected?key=secret-token") | |
| assert response.status_code == 200 | |
| assert response.json() == {"ok": True} | |
| def test_missing_or_invalid_api_key_returns_401(monkeypatch): | |
| monkeypatch.setattr(settings, "api_keys", frozenset({"secret-token"})) | |
| client = _build_client() | |
| response = client.get("/protected") | |
| assert response.status_code == 401 | |
| assert response.headers["www-authenticate"] == "Bearer" | |
| assert response.json()["detail"]["type"] == "authentication_error" | |