Spaces:
Running
Running
| from unittest.mock import AsyncMock | |
| import respx | |
| from httpx import Response | |
| from app.services.downloader import Downloader | |
| from app.services.validator import MediaValidator | |
| async def test_url_download_streams_to_disk(settings, tmp_path) -> None: | |
| url = "https://media.example.test/sample.mp3" | |
| respx.get(url).mock( | |
| return_value=Response(200, content=b"ID3data", headers={"content-type": "audio/mpeg"}) | |
| ) | |
| downloader = Downloader(settings, MediaValidator(settings)) | |
| downloader.validate_url = AsyncMock() # type: ignore[method-assign] | |
| path, mime_type = await downloader.download(url, tmp_path) | |
| assert path.read_bytes() == b"ID3data" | |
| assert mime_type == "audio/mpeg" | |