Validate screenshot MIME and filename metadata

This commit is contained in:
ik
2026-09-03 08:17:00 +07:00
parent b73580c720
commit a7bfc7ee8d
5 changed files with 25 additions and 5 deletions
+12 -1
View File
@@ -5,7 +5,7 @@ import io
import pytest
from PIL import Image
from app.storage import ScreenshotError, prepare_image
from app.storage import ScreenshotError, prepare_image, validate_upload_metadata
def test_prepare_image_removes_metadata() -> None:
@@ -26,3 +26,14 @@ def test_prepare_image_removes_metadata() -> None:
def test_prepare_image_rejects_non_image() -> None:
with pytest.raises(ScreenshotError, match="valid image"):
prepare_image(b"not an image")
def test_upload_metadata_requires_matching_supported_mime_and_extension() -> None:
validate_upload_metadata("catch.jpeg", "image/jpeg")
validate_upload_metadata("catch.webp", "image/webp")
with pytest.raises(ScreenshotError, match="extension and MIME"):
validate_upload_metadata("catch.exe", "image/jpeg")
with pytest.raises(ScreenshotError, match="extension and MIME"):
validate_upload_metadata("catch.png", "image/jpeg")
with pytest.raises(ScreenshotError, match="extension and MIME"):
validate_upload_metadata("catch.jpg", "application/octet-stream")