fix: resize gallery thumbnails for current high density cards

This commit is contained in:
渡口浪人
2026-10-18 15:17:55 +08:00
parent c0291050be
commit a05260712e
3 changed files with 41 additions and 6 deletions
+28
View File
@@ -0,0 +1,28 @@
import io
from PIL import Image
def test_gallery_thumbnail_upgrades_existing_cache_and_reuses_it(client, settings):
cache = settings.data_dir / "cache"
original = cache / "living-room-1.original"
thumb = cache / "living-room-1-thumb.jpg"
Image.new("RGB", (1600, 1200), "blue").save(original, "JPEG")
Image.new("RGB", (300, 225), "blue").save(thumb, "JPEG")
url = "/api/v1/devices/living-room/images/1/file?thumbnail=true"
result = client.get(url)
assert result.status_code == 200
assert Image.open(io.BytesIO(result.content)).size == (860, 645)
modified = thumb.stat().st_mtime_ns
assert client.get(url).content == result.content
assert thumb.stat().st_mtime_ns == modified
assert len(list(cache.glob("living-room-1-thumb*"))) == 1
assert Image.open(original).size == (1600, 1200)
def test_gallery_thumbnail_does_not_upscale_small_source(client, settings):
original = settings.data_dir / "cache" / "living-room-1.original"
Image.new("RGBA", (200, 400), (255, 0, 0, 255)).save(original, "PNG")
result = client.get("/api/v1/devices/living-room/images/1/file?thumbnail=true")
assert result.status_code == 200
assert Image.open(io.BytesIO(result.content)).size == (200, 400)