Organize gallery into highlighted photo groups

This commit is contained in:
2026-09-19 18:13:48 +03:30
parent 3ec6cdd3ec
commit b6b19c07bb
30 changed files with 335 additions and 66 deletions
+11 -6
View File
@@ -116,10 +116,12 @@ def test_album_caption_order_and_retry_deduplication(service):
assert response.status_code == 202
job = response.json["id"]
folder = data / "submissions" / job
entry = (folder / "entry.md").read_text()
assert "<script>" not in entry and "{%" not in entry and "{{" not in entry
assert "<br>second line" in entry
assert entry.index("00.jpg") < entry.index("01.jpg")
entries = sorted((folder / "entries").glob("*.md"))
assert len(entries) == 2
rendered = "\n".join(entry.read_text() for entry in entries)
assert "<script>" not in rendered and "{%" not in rendered and "{{" not in rendered
assert rendered.count("<br>second line") == 2
assert "00.jpg" in entries[0].read_text() and "01.jpg" in entries[1].read_text()
assert Image.open(folder / "images/00.jpg").getpixel((0, 0))[0] > 240
assert Image.open(folder / "images/01.jpg").getpixel((0, 0))[2] > 240
assert (folder / "originals/0").read_bytes() == images[0]
@@ -168,7 +170,9 @@ def test_highlight_album_and_safe_front_matter(service):
assert response.status_code == 202
job = response.json["id"]
folder = data / "submissions" / job
entry = (folder / "entry.md").read_text()
entries = sorted((folder / "entries").glob("*.md"))
assert len(entries) == 2
entry = entries[0].read_text()
metadata, body = entry.split("---\n", 2)[1:]
anchor = next(line for line in metadata.splitlines() if line.startswith("anchor: "))
assert json.loads(anchor.removeprefix("anchor: ")) == name
@@ -176,7 +180,8 @@ def test_highlight_album_and_safe_front_matter(service):
# The template emits the sole target at the start of this album, before 00.jpg.
assert f'title: "photo-{job}"' in metadata
assert f'id="photo-{job}"' not in body
assert body.index("00.jpg") < body.index("01.jpg")
assert "00.jpg" in body and "01.jpg" in entries[1].read_text()
assert "anchor:" not in entries[1].read_text()
assert json.loads((folder / "manifest.json").read_text())["highlight"] == name
assert upload(client, images, "Album caption", highlight=name).status_code == 200
assert upload(client, images, "Album caption", highlight="Other trip").json["id"] != job