This commit is contained in:
Victorien 2026-02-13 15:26:44 +00:00 committed by GitHub
commit 235f305890
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 4 deletions

View File

@ -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

View File

@ -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]}