committed by
GitHub
3 changed files with 23 additions and 15 deletions
@ -1,16 +1,15 @@ |
|||||
import pytest |
|
||||
from fastapi.testclient import TestClient |
|
||||
from fastapi import FastAPI, Request |
from fastapi import FastAPI, Request |
||||
from fastapi.route_middleware import route_middleware, verify_jwt, log_route |
from fastapi.route_middleware import log_route, route_middleware, verify_jwt |
||||
|
|
||||
app = FastAPI() |
app = FastAPI() |
||||
|
|
||||
|
|
||||
@app.post("/secure") |
@app.post("/secure") |
||||
@route_middleware(verify_jwt, log_route) |
@route_middleware(verify_jwt, log_route) |
||||
async def secure_route(req: Request, is_true: bool): |
async def secure_route(req: Request, is_true: bool): |
||||
|
|
||||
return {"status": "ok", "is_true": is_true, "user": req.user} |
return {"status": "ok", "is_true": is_true, "user": req.user} |
||||
|
|
||||
|
|
||||
@app.post("/open") |
@app.post("/open") |
||||
async def open_route(is_true: bool): |
async def open_route(is_true: bool): |
||||
return {"status": "open", "is_true": is_true} |
return {"status": "open", "is_true": is_true} |
||||
|
|||||
@ -1,29 +1,34 @@ |
|||||
import pytest |
|
||||
from fastapi.testclient import TestClient |
|
||||
from fastapi import FastAPI, Request |
from fastapi import FastAPI, Request |
||||
from fastapi.route_middleware import route_middleware, verify_jwt, log_route |
from fastapi.route_middleware import log_route, route_middleware, verify_jwt |
||||
|
from fastapi.testclient import TestClient |
||||
|
|
||||
app = FastAPI() |
app = FastAPI() |
||||
|
|
||||
|
|
||||
@app.post("/secure") |
@app.post("/secure") |
||||
@route_middleware(verify_jwt, log_route) |
@route_middleware(verify_jwt, log_route) |
||||
async def secure_route(req: Request, is_true: bool): |
async def secure_route(req: Request, is_true: bool): |
||||
return {"status": "ok", "is_true": is_true, "user": req.user} |
return {"status": "ok", "is_true": is_true, "user": req.user} |
||||
|
|
||||
|
|
||||
@app.post("/open") |
@app.post("/open") |
||||
async def open_route(is_true: bool): |
async def open_route(is_true: bool): |
||||
return {"status": "open", "is_true": is_true} |
return {"status": "open", "is_true": is_true} |
||||
|
|
||||
|
|
||||
client = TestClient(app) |
client = TestClient(app) |
||||
|
|
||||
|
|
||||
def test_secure_route_pass(): |
def test_secure_route_pass(): |
||||
response = client.post("/secure?is_true=true") |
response = client.post("/secure?is_true=true") |
||||
assert response.status_code == 200 |
assert response.status_code == 200 |
||||
|
|
||||
|
|
||||
def test_secure_route_fail(): |
def test_secure_route_fail(): |
||||
response = client.post("/secure?is_true=false") |
response = client.post("/secure?is_true=false") |
||||
assert response.status_code == 403 |
assert response.status_code == 403 |
||||
|
|
||||
|
|
||||
def test_open_route(): |
def test_open_route(): |
||||
response = client.post("/open?is_true=false") |
response = client.post("/open?is_true=false") |
||||
assert response.status_code == 200 |
assert response.status_code == 200 |
||||
|
|||||
Loading…
Reference in new issue