繁体   English   中英

如何修补 FastAPI 请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM