MediaRouter / tests /test_downloader.py
basyx's picture
Upload 437 files
7cc81cb verified
Raw
History Blame Contribute Delete
718 Bytes
from unittest.mock import AsyncMock
import respx
from httpx import Response
from app.services.downloader import Downloader
from app.services.validator import MediaValidator
@respx.mock
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"