# retoor JSON = {"Accept": "application/json"} def test_gallery_status_requires_admin(anon, member): assert anon.get("/admin/gallery", headers=JSON).status_code == 401 assert member.get("/admin/gallery", headers=JSON).status_code == 403 assert anon.post("/admin/gallery/resync", headers=JSON).status_code == 401 assert member.post("/admin/gallery/resync", headers=JSON).status_code == 403 def test_gallery_status_reports_counts(admin): response = admin.get("/admin/gallery", headers=JSON) assert response.status_code == 200 body = response.json() assert body["flyers"] >= 1 assert body["memes"] >= 1 assert body["missing"] == [] page = admin.get("/admin/gallery") assert page.status_code == 200 assert "Resync gallery" in page.text def test_gallery_resync_reconciles(admin): response = admin.post("/admin/gallery/resync", headers=JSON) assert response.status_code == 200 data = response.json()["data"] assert data["synced"] == data["flyers"] + data["memes"] assert data["missing"] == [] form = admin.post("/admin/gallery/resync") assert form.status_code in (302, 303) assert form.headers["location"] == "/admin/gallery"