fastapi/tests/test_route_middleware.py

35 lines
850 B
Python

from fastapi import FastAPI, Request
from fastapi.route_middleware import log_route, route_middleware, verify_jwt
from fastapi.testclient import TestClient
app = FastAPI()
@app.post("/secure")
@route_middleware(verify_jwt, log_route)
async def secure_route(req: Request, is_true: bool):
return {"status": "ok", "is_true": is_true, "user": req.user}
@app.post("/open")
async def open_route(is_true: bool):
return {"status": "open", "is_true": is_true}
client = TestClient(app)
def test_secure_route_pass():
response = client.post("/secure?is_true=true")
assert response.status_code == 200
def test_secure_route_fail():
response = client.post("/secure?is_true=false")
assert response.status_code == 403
def test_open_route():
response = client.post("/open?is_true=false")
assert response.status_code == 200