diff --git a/src/sigal/themes/photoswipe/templates/album_items.html b/src/sigal/themes/photoswipe/templates/album_items.html index 245dc28..1803a88 100644 --- a/src/sigal/themes/photoswipe/templates/album_items.html +++ b/src/sigal/themes/photoswipe/templates/album_items.html @@ -24,7 +24,7 @@
{{ img_description(media, with_big=False) }}
-
{{ media.title }}{{ (" - " + media.exif.datetime) if media.exif else "" }}
+
{{ media.title }}{{ (" - " + media.exif.datetime) if media.exif and media.exif.datetime else "" }}
{% endif %} {% endfor %} diff --git a/tests/sample/pictures/exifTest/22-nodate.jpg b/tests/sample/pictures/exifTest/22-nodate.jpg new file mode 100644 index 0000000..6ef4519 Binary files /dev/null and b/tests/sample/pictures/exifTest/22-nodate.jpg differ diff --git a/tests/test_extended_caching.py b/tests/test_extended_caching.py index 4617600..8c6ffcc 100644 --- a/tests/test_extended_caching.py +++ b/tests/test_extended_caching.py @@ -21,20 +21,23 @@ def test_save_cache(settings, tmpdir): # test exif album = gal.albums["exifTest"] + media = next(m for m in album.medias if m.src_filename == "21.jpg") cache_img = cache["exifTest/21.jpg"] - assert cache_img["exif"] == album.medias[0].exif + assert cache_img["exif"] == media.exif assert "markdown_metadata" not in cache_img - assert cache_img["file_metadata"] == album.medias[0].file_metadata + assert cache_img["file_metadata"] == media.file_metadata + media = next(m for m in album.medias if m.src_filename == "22.jpg") cache_img = cache["exifTest/22.jpg"] - assert cache_img["exif"] == album.medias[1].exif + assert cache_img["exif"] == media.exif assert "markdown_metadata" not in cache_img - assert cache_img["file_metadata"] == album.medias[1].file_metadata + assert cache_img["file_metadata"] == media.file_metadata + media = next(m for m in album.medias if m.src_filename == "noexif.png") cache_img = cache["exifTest/noexif.png"] - assert cache_img["exif"] == album.medias[2].exif + assert cache_img["exif"] == media.exif assert "markdown_metadata" not in cache_img - assert cache_img["file_metadata"] == album.medias[2].file_metadata + assert cache_img["file_metadata"] == media.file_metadata # test iptc and md album = gal.albums["iptcTest"] @@ -75,27 +78,33 @@ def test_restore_cache(settings, tmpdir): def test_load_exif(settings, tmpdir): settings["destination"] = str(tmpdir) gal1 = Gallery(settings, ncpu=1) - gal1.albums["exifTest"].medias[2].exif = "blafoo" + gal1.albums["exifTest"].medias[3].exif = "blafoo" # set mod_date in future, to force these values gal1.metadataCache = { "exifTest/21.jpg": {"exif": "Foo", "mod_date": 100000000000}, "exifTest/22.jpg": {"exif": "Bar", "mod_date": 100000000000}, + "exifTest/22-nodate.jpg": {"exif": "Baz", "mod_date": 100000000000}, } extended_caching.load_metadata(gal1.albums["exifTest"]) - assert gal1.albums["exifTest"].medias[0].exif == "Foo" - assert gal1.albums["exifTest"].medias[1].exif == "Bar" - assert gal1.albums["exifTest"].medias[2].exif == "blafoo" + def get_media(gal, filename): + return next( + m for m in gal.albums["exifTest"].medias if m.src_filename == filename + ) + + assert get_media(gal1, "21.jpg").exif == "Foo" + assert get_media(gal1, "22.jpg").exif == "Bar" + assert get_media(gal1, "noexif.png").exif == "blafoo" # check if setting gallery.metadataCache works gal2 = Gallery(settings, ncpu=1) extended_caching.save_cache(gal1) extended_caching.load_metadata(gal2.albums["exifTest"]) - assert gal2.albums["exifTest"].medias[0].exif == "Foo" - assert gal2.albums["exifTest"].medias[1].exif == "Bar" - assert gal2.albums["exifTest"].medias[2].exif == "blafoo" + assert get_media(gal2, "21.jpg").exif == "Foo" + assert get_media(gal2, "22.jpg").exif == "Bar" + assert get_media(gal2, "noexif.png").exif == "blafoo" def test_load_metadata_missing(settings, tmpdir):