Coverage for tests / test_optional_file_list.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.13.3, created at 2026-02-21 17:29 +0000

1from fastapi import FastAPI, File 1abcd

2from fastapi.testclient import TestClient 1abcd

3 

4app = FastAPI() 1abcd

5 

6 

7@app.post("/files") 1abcd

8async def upload_files(files: list[bytes] | None = File(None)): 1abcd

9 if files is None: 1efghij

10 return {"files_count": 0} 1fhj

11 return {"files_count": len(files), "sizes": [len(f) for f in files]} 1egi

12 

13 

14def test_optional_bytes_list(): 1abcd

15 client = TestClient(app) 1egi

16 response = client.post( 1egi

17 "/files", 

18 files=[("files", b"content1"), ("files", b"content2")], 

19 ) 

20 assert response.status_code == 200 1egi

21 assert response.json() == {"files_count": 2, "sizes": [8, 8]} 1egi

22 

23 

24def test_optional_bytes_list_no_files(): 1abcd

25 client = TestClient(app) 1fhj

26 response = client.post("/files") 1fhj

27 assert response.status_code == 200 1fhj

28 assert response.json() == {"files_count": 0} 1fhj