Include oversized Synology photos through existing read-only XL previews
This commit is contained in:
@@ -125,3 +125,37 @@ def test_curated_catalog_includes_photos_beyond_old_ten_thousand_limit(
|
||||
),
|
||||
)
|
||||
assert len(service.photo_sources.catalog("all")) == 10001
|
||||
|
||||
|
||||
def test_oversized_synology_photo_uses_read_only_cached_preview(service, settings):
|
||||
root = settings.data_dir.parent / "synology"
|
||||
settings.photo_root = root
|
||||
settings.max_bytes = 1000
|
||||
original = root / "20261005 出游@金山" / "large.jpg"
|
||||
original.parent.mkdir(parents=True)
|
||||
original.write_bytes(b"x" * 1001)
|
||||
preview = original.parent / "@eaDir" / original.name / "SYNOPHOTO_THUMB_XL.jpg"
|
||||
preview.parent.mkdir(parents=True)
|
||||
Image.new("RGB", (20, 20), "blue").save(preview)
|
||||
source = PhotoSourceInput(
|
||||
name="Synology",
|
||||
kind="local",
|
||||
location=".",
|
||||
organized_only=True,
|
||||
folder_caption=True,
|
||||
synology_previews=True,
|
||||
)
|
||||
service.photo_sources.save("synology", source)
|
||||
items = service.photo_sources.catalog("synology")
|
||||
assert len(items) == 1 and items[0]["provider_preview"]
|
||||
data, name, caption = service.photo_sources.read("synology")
|
||||
assert (
|
||||
data == preview.read_bytes()
|
||||
and name == "large.jpg"
|
||||
and caption["place"] == "金山"
|
||||
)
|
||||
assert original.read_bytes() == b"x" * 1001
|
||||
service.photo_sources.save(
|
||||
"synology", source.model_copy(update={"synology_previews": False})
|
||||
)
|
||||
assert service.photo_sources.catalog("synology") == []
|
||||
|
||||
Reference in New Issue
Block a user