US01-05: Generate and Serve Managed Thumbnails (#50)
This commit was merged in pull request #50.
This commit is contained in:
37
tests/unit/test_thumbnail_cache_key.py
Normal file
37
tests/unit/test_thumbnail_cache_key.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""Cache-key golden rules: keyed by pixel hash + size + version, so identity
|
||||
changes invalidate and EXIF-only changes reuse."""
|
||||
|
||||
from photo_pipeline.models import Asset
|
||||
from photo_pipeline.services.thumbnails import THUMB_VERSION, ThumbnailService
|
||||
|
||||
|
||||
def _asset(pixel=None, sha="deadbeef"):
|
||||
return Asset(
|
||||
id="a1",
|
||||
original_path="a.jpg",
|
||||
current_path="a.jpg",
|
||||
current_sha256=sha,
|
||||
pixel_sha256=pixel,
|
||||
hash_version=1,
|
||||
)
|
||||
|
||||
|
||||
def test_key_is_pixel_size_and_version():
|
||||
key = ThumbnailService._cache_key(_asset(pixel="PIX"), 512)
|
||||
assert key == f"PIX-512-v{THUMB_VERSION}"
|
||||
|
||||
|
||||
def test_different_size_changes_key():
|
||||
asset = _asset(pixel="PIX")
|
||||
assert ThumbnailService._cache_key(asset, 256) != ThumbnailService._cache_key(asset, 512)
|
||||
|
||||
|
||||
def test_different_pixels_change_key():
|
||||
assert ThumbnailService._cache_key(_asset(pixel="P1"), 512) != ThumbnailService._cache_key(
|
||||
_asset(pixel="P2"), 512
|
||||
)
|
||||
|
||||
|
||||
def test_undecodable_asset_keys_by_source_bytes():
|
||||
key = ThumbnailService._cache_key(_asset(pixel=None, sha="abc123"), 256)
|
||||
assert key == f"src:abc123-256-v{THUMB_VERSION}"
|
||||
Reference in New Issue
Block a user