From 2504aa5b031a2a3b3bec5fe7cbf395462f8c2c43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ricks?= Date: Tue, 4 Jul 2023 14:10:24 +0200 Subject: [PATCH] Add tests for the URL of the download progress iterator --- tests/test_helper.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/test_helper.py b/tests/test_helper.py index 7480acbd..c6739891 100644 --- a/tests/test_helper.py +++ b/tests/test_helper.py @@ -101,7 +101,7 @@ async def test_download_progress_without_length(self): class DownloadAsyncTestCase(IsolatedAsyncioTestCase): async def test_download_async(self): - response = create_response() + response = create_response(url="http://some.url") response.aiter_bytes.return_value = AsyncIteratorMock(["1", "2"]) stream = AsyncMock() stream.__aenter__.return_value = response @@ -109,6 +109,8 @@ async def test_download_async(self): async with download_async( stream, content_length=2 ) as download_iterable: + self.assertEqual(download_iterable.url, "http://some.url") + it = aiter(download_iterable) content, progress = await anext(it) @@ -120,13 +122,38 @@ async def test_download_async(self): self.assertEqual(progress, 100) async def test_download_async_content_length(self): - response = create_response(headers=MagicMock()) + response = create_response(headers=MagicMock(), url="http://some.url") response.aiter_bytes.return_value = AsyncIteratorMock(["1", "2"]) response.headers.get.return_value = 2 stream = AsyncMock() stream.__aenter__.return_value = response async with download_async(stream) as download_iterable: + self.assertEqual(download_iterable.url, "http://some.url") + + it = aiter(download_iterable) + content, progress = await anext(it) + + self.assertEqual(content, "1") + self.assertEqual(progress, 50) + + content, progress = await anext(it) + self.assertEqual(content, "2") + self.assertEqual(progress, 100) + + async def test_download_async_url(self): + response = create_response(url="http://some.url") + response.aiter_bytes.return_value = AsyncIteratorMock(["1", "2"]) + stream = AsyncMock() + stream.__aenter__.return_value = response + + async with download_async( + stream, + url="http://foo.bar", + content_length=2, + ) as download_iterable: + self.assertEqual(download_iterable.url, "http://foo.bar") + it = aiter(download_iterable) content, progress = await anext(it)