|
6 | 6 | import pytest |
7 | 7 |
|
8 | 8 | from kili.adapters.http_client import HttpClient |
9 | | -from kili.use_cases.asset.media_downloader import MediaDownloader |
| 9 | +from kili.domain.asset import AssetExternalId |
| 10 | +from kili.use_cases.asset.media_downloader import MediaDownloader, get_download_path |
10 | 11 | from kili.utils.tempfile import TemporaryDirectory |
11 | 12 |
|
12 | 13 |
|
@@ -198,3 +199,39 @@ def test_download_media_jsoncontent_none(mocker, content, jsoncontent, should_ca |
198 | 199 | http_client.get.assert_called() |
199 | 200 | else: |
200 | 201 | http_client.get.assert_not_called() |
| 202 | + |
| 203 | + |
| 204 | +def test_get_download_path_no_double_extension(mocker): |
| 205 | + mocker.patch( |
| 206 | + "kili.use_cases.asset.media_downloader.get_file_extension_from_headers", |
| 207 | + return_value=".jpg", |
| 208 | + ) |
| 209 | + http_client = mocker.MagicMock(spec=HttpClient) |
| 210 | + path = get_download_path( |
| 211 | + "https://example.com/img", AssetExternalId("photo.jpeg"), Path("/tmp"), http_client |
| 212 | + ) |
| 213 | + assert path.name == "photo.jpeg" # not "photo.jpeg.jpg" |
| 214 | + |
| 215 | + |
| 216 | +def test_get_download_path_with_valid_extension(mocker): |
| 217 | + mocker.patch( |
| 218 | + "kili.use_cases.asset.media_downloader.get_file_extension_from_headers", |
| 219 | + return_value=".jpg", |
| 220 | + ) |
| 221 | + http_client = mocker.MagicMock(spec=HttpClient) |
| 222 | + path = get_download_path( |
| 223 | + "https://example.com/img", AssetExternalId("photo.aaa"), Path("/tmp"), http_client |
| 224 | + ) |
| 225 | + assert path.name == "photo.aaa.jpg" # not "photo.aaa" |
| 226 | + |
| 227 | + |
| 228 | +def test_get_download_path_with_extension(mocker): |
| 229 | + mocker.patch( |
| 230 | + "kili.use_cases.asset.media_downloader.get_file_extension_from_headers", |
| 231 | + return_value=".jpg", |
| 232 | + ) |
| 233 | + http_client = mocker.MagicMock(spec=HttpClient) |
| 234 | + path = get_download_path( |
| 235 | + "https://example.com/img", AssetExternalId("photo"), Path("/tmp"), http_client |
| 236 | + ) |
| 237 | + assert path.name == "photo.jpg" # not "photo" |
0 commit comments