|
5 | 5 | import re
|
6 | 6 | import uuid
|
7 | 7 | from unittest import mock
|
| 8 | +from urllib.parse import parse_qs, urlparse |
8 | 9 |
|
9 | 10 | from django.core.files.storage import default_storage
|
10 | 11 | from django.core.files.uploadedfile import SimpleUploadedFile
|
@@ -66,8 +67,12 @@ def test_api_documents_attachment_upload_anonymous_success():
|
66 | 67 |
|
67 | 68 | assert response.status_code == 201
|
68 | 69 |
|
69 |
| - pattern = re.compile(rf"^/media/{document.id!s}/attachments/(.*)\.png") |
70 |
| - file_path = response.json()["file"] |
| 70 | + pattern = re.compile(rf"^{document.id!s}/attachments/(.*)\.png") |
| 71 | + url_parsed = urlparse(response.json()["file"]) |
| 72 | + assert url_parsed.path == f"/api/v1.0/documents/{document.id!s}/media-check/" |
| 73 | + query = parse_qs(url_parsed.query) |
| 74 | + assert query["key"][0] is not None |
| 75 | + file_path = query["key"][0] |
71 | 76 | match = pattern.search(file_path)
|
72 | 77 | file_id = match.group(1)
|
73 | 78 | # Validate that file_id is a valid UUID
|
@@ -148,8 +153,13 @@ def test_api_documents_attachment_upload_authenticated_success(reach, role):
|
148 | 153 |
|
149 | 154 | assert response.status_code == 201
|
150 | 155 |
|
151 |
| - pattern = re.compile(rf"^/media/{document.id!s}/attachments/(.*)\.png") |
152 |
| - match = pattern.search(response.json()["file"]) |
| 156 | + pattern = re.compile(rf"^{document.id!s}/attachments/(.*)\.png") |
| 157 | + url_parsed = urlparse(response.json()["file"]) |
| 158 | + assert url_parsed.path == f"/api/v1.0/documents/{document.id!s}/media-check/" |
| 159 | + query = parse_qs(url_parsed.query) |
| 160 | + assert query["key"][0] is not None |
| 161 | + file_path = query["key"][0] |
| 162 | + match = pattern.search(file_path) |
153 | 163 | file_id = match.group(1)
|
154 | 164 |
|
155 | 165 | mock_analyse_file.assert_called_once_with(
|
@@ -224,8 +234,12 @@ def test_api_documents_attachment_upload_success(via, role, mock_user_teams):
|
224 | 234 |
|
225 | 235 | assert response.status_code == 201
|
226 | 236 |
|
227 |
| - file_path = response.json()["file"] |
228 |
| - pattern = re.compile(rf"^/media/{document.id!s}/attachments/(.*)\.png") |
| 237 | + pattern = re.compile(rf"^{document.id!s}/attachments/(.*)\.png") |
| 238 | + url_parsed = urlparse(response.json()["file"]) |
| 239 | + assert url_parsed.path == f"/api/v1.0/documents/{document.id!s}/media-check/" |
| 240 | + query = parse_qs(url_parsed.query) |
| 241 | + assert query["key"][0] is not None |
| 242 | + file_path = query["key"][0] |
229 | 243 | match = pattern.search(file_path)
|
230 | 244 | file_id = match.group(1)
|
231 | 245 |
|
@@ -320,8 +334,13 @@ def test_api_documents_attachment_upload_fix_extension(
|
320 | 334 |
|
321 | 335 | assert response.status_code == 201
|
322 | 336 |
|
323 |
| - file_path = response.json()["file"] |
324 |
| - pattern = re.compile(rf"^/media/{document.id!s}/attachments/(.*)\.{extension:s}") |
| 337 | + pattern = re.compile(rf"^{document.id!s}/attachments/(.*)\.{extension:s}") |
| 338 | + url_parsed = urlparse(response.json()["file"]) |
| 339 | + assert url_parsed.path == f"/api/v1.0/documents/{document.id!s}/media-check/" |
| 340 | + query = parse_qs(url_parsed.query) |
| 341 | + assert query["key"][0] is not None |
| 342 | + file_path = query["key"][0] |
| 343 | + |
325 | 344 | match = pattern.search(file_path)
|
326 | 345 | file_id = match.group(1)
|
327 | 346 |
|
@@ -386,8 +405,12 @@ def test_api_documents_attachment_upload_unsafe():
|
386 | 405 |
|
387 | 406 | assert response.status_code == 201
|
388 | 407 |
|
389 |
| - file_path = response.json()["file"] |
390 |
| - pattern = re.compile(rf"^/media/{document.id!s}/attachments/(.*)\.exe") |
| 408 | + pattern = re.compile(rf"^{document.id!s}/attachments/(.*)\.exe") |
| 409 | + url_parsed = urlparse(response.json()["file"]) |
| 410 | + assert url_parsed.path == f"/api/v1.0/documents/{document.id!s}/media-check/" |
| 411 | + query = parse_qs(url_parsed.query) |
| 412 | + assert query["key"][0] is not None |
| 413 | + file_path = query["key"][0] |
391 | 414 | match = pattern.search(file_path)
|
392 | 415 | file_id = match.group(1)
|
393 | 416 |
|
|
0 commit comments