mirror of https://github.com/tiangolo/fastapi.git
Merge c524dd41e0 into 5420847d9f
This commit is contained in:
commit
235f305890
|
|
@ -900,7 +900,10 @@ async def _extract_form_body(
|
|||
assert isinstance(value, sequence_types)
|
||||
results: list[bytes | str] = []
|
||||
for sub_value in value:
|
||||
results.append(await sub_value.read())
|
||||
if isinstance(sub_value, UploadFile):
|
||||
results.append(await sub_value.read())
|
||||
else:
|
||||
results.append(sub_value)
|
||||
value = serialize_sequence_value(field=field, value=results)
|
||||
if value is not None:
|
||||
values[get_validation_alias(field)] = value
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
from typing import Optional
|
||||
|
||||
from fastapi import FastAPI, File
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
|
|
@ -7,7 +5,7 @@ app = FastAPI()
|
|||
|
||||
|
||||
@app.post("/files")
|
||||
async def upload_files(files: Optional[list[bytes]] = File(None)):
|
||||
async def upload_files(files: list[bytes] | None = File(None)):
|
||||
if files is None:
|
||||
return {"files_count": 0}
|
||||
return {"files_count": len(files), "sizes": [len(f) for f in files]}
|
||||
|
|
@ -28,3 +26,13 @@ def test_optional_bytes_list_no_files():
|
|||
response = client.post("/files")
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"files_count": 0}
|
||||
|
||||
|
||||
def test_optional_bytes_list_send_empty_str():
|
||||
client = TestClient(app)
|
||||
response = client.post(
|
||||
"/files",
|
||||
data={"files": ""},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"files_count": 1, "sizes": [0]}
|
||||
|
|
|
|||
Loading…
Reference in New Issue