[英]How to patch a FastAPI Request
我有这个 function 在我的所有 API 中被称为依赖项。
from fastapi import HTTPException, Request, status
async def get_user_id_or_401(request: Request) -> str:
user_id: str = request.headers.get("x-cognito-user-id")
if not user_id:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED, detail="Unauthorized"
)
return user_id
如何对这个 function 进行单元测试? 我最初的举动是修补request.headers.get
但我不知道如何 go 解决这个问题。
所以,我的问题是,如何修补request.headers.get
。 但是,如果有更好的方法我可以 go 关于测试这个,请告诉我。
这就是https://fastapi.tiangolo.com/advanced/testing-dependencies/的覆盖
像这样的东西:
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
async def mock_user_id(request):
return "foo"
app.dependency_overrides[get_user_id_or_401] = mock_user_id
def test_request():
response = client.get("/")
assert response.status_code == 200
但我认为最好在测试期间提出请求,这样就不需要通过将 header 添加到其中。 这也将在那里测试您的 function,否则将不包括在内。
def test_request():
response = client.get("/", headers={"x-cognito-user-id": "foo"})
assert response.status_code == 200
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.