1 changed files with 26 additions and 0 deletions
@ -0,0 +1,26 @@ |
|||||
|
from fastapi import Depends, FastAPI, HTTPException |
||||
|
from fastapi.security import HTTPBasic, HTTPBasicCredentials |
||||
|
from fastapi.testclient import TestClient |
||||
|
|
||||
|
app = FastAPI() |
||||
|
|
||||
|
security = HTTPBasic(realm="") |
||||
|
|
||||
|
@app.get("/users/me") |
||||
|
def read_current_user(credentials: HTTPBasicCredentials = Depends(security)): |
||||
|
return {"username": credentials.username, "password": credentials.password} |
||||
|
|
||||
|
client = TestClient(app) |
||||
|
|
||||
|
def test_security_http_basic_empty_realm(): |
||||
|
response = client.get("/users/me", auth=("john", "secret")) |
||||
|
assert response.status_code == 200, response.text |
||||
|
assert response.json() == {"username": "john", "password": "secret"} |
||||
|
|
||||
|
def test_security_http_basic_invalid_credentials_empty_realm(): |
||||
|
response = client.get( |
||||
|
"/users/me", headers={"Authorization": "Basic notabase64token"} |
||||
|
) |
||||
|
assert response.status_code == 401, response.text |
||||
|
assert response.headers["WWW-Authenticate"] == "Basic" |
||||
|
assert response.json() == {"detail": "Invalid authentication credentials"} |
||||
Loading…
Reference in new issue