"""Tests de la lecture bornée des uploads.""" import asyncio import io import pytest from fastapi import UploadFile from plesna_gerance.utils.uploads import UploadTooLargeError, read_upload_limited def _upload(content: bytes) -> UploadFile: return UploadFile(filename="x.pdf", file=io.BytesIO(content)) def test_read_upload_under_limit(): content = b"hello world" result = asyncio.run(read_upload_limited(_upload(content), max_size=1024)) assert result == content def test_read_upload_over_limit_raises(): content = b"x" * 2048 with pytest.raises(UploadTooLargeError): asyncio.run(read_upload_limited(_upload(content), max_size=1024)) def test_read_upload_empty(): assert asyncio.run(read_upload_limited(_upload(b""), max_size=1024)) == b""