Ali*_*nte 1 pytest python-3.x fastapi
我正在尝试测试将文件上传到 FastApi,但我不断收到 422 验证错误。文件上传在OpenApi接口下可以正常上传,但在下面的测试中不行。
路由器:
@router.post("/files")
def file_contents(files: List[UploadFile]):
return someprocessing(files)
Run Code Online (Sandbox Code Playgroud)
测试(使用TestClientFastApi):
response = client.post(
url="/files",
files={"files": ("file.xlsx", open("./test_files/file.xlsx", "rb"))},
headers={**auth_headers, **{"Content-Type": "multipart/form-data"}},
)
Run Code Online (Sandbox Code Playgroud)
错误:
{"detail":[{"loc":["body"],"msg":"value is not a valid dict","type":"type_error.dict"}]}
Run Code Online (Sandbox Code Playgroud)
更新:很好,我正在将文件发送到不同的网址...
我想这里的问题是传递的内容类型,这个例子有效:
from typing import List
from fastapi import FastAPI, UploadFile
app = FastAPI()
@app.post("/files")
def file_contents(files: List[UploadFile]):
return {"filenames": [file.filename for file in files]}
Run Code Online (Sandbox Code Playgroud)
测试:
from fastapi.testclient import TestClient
from fast_example import app
client = TestClient(app)
files = [('files', open('so.py', 'rb')), ('files', open('main.py', 'rb'))]
response = client.post(
url="/files",
files=files
)
print(response.json())
# {'filenames': ['so.py', 'main.py']}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |