Fiches de poste : message de l'organisation en bas de chaque page
Edition.volunteer_message imprimé en pied de chaque page (suite d'une feuille comprise), la marge du bas agrandie de sa hauteur ; rien sans message. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c6ea7378c7
commit
cc8c2e61ab
@@ -174,3 +174,31 @@ def test_unreadable_photo_does_not_break_the_sheet():
|
||||
[_sheet(volunteers=(SheetVolunteer(name="Alex", phone=None, photo=b"pas une image"),))]
|
||||
)
|
||||
assert pdf.startswith(b"%PDF")
|
||||
|
||||
|
||||
def _page_texts(pdf: bytes) -> list[str]:
|
||||
from pypdf import PdfReader
|
||||
|
||||
return [page.extract_text() for page in PdfReader(io.BytesIO(pdf)).pages]
|
||||
|
||||
|
||||
def test_footer_message_is_printed_at_the_bottom_of_every_page():
|
||||
from app.sheets.pdf import SheetFooter
|
||||
|
||||
# Deux feuilles, dont une assez longue pour déborder sur une 2e page.
|
||||
many = tuple(SheetVolunteer(name=f"Bénévole {i}", phone=None, photo=None) for i in range(40))
|
||||
pdf = generate_position_sheets_pdf(
|
||||
[_sheet(volunteers=many), _sheet()],
|
||||
SheetFooter(title="Message de l'organisation", message="Repas à 18h30\nBadges à l'accueil"),
|
||||
)
|
||||
pages = _page_texts(pdf)
|
||||
assert len(pages) >= 3
|
||||
for text in pages:
|
||||
assert "Message de l'organisation" in text
|
||||
assert "Repas à 18h30" in text
|
||||
assert "Badges à l'accueil" in text
|
||||
|
||||
|
||||
def test_no_footer_without_message():
|
||||
pages = _page_texts(generate_position_sheets_pdf([_sheet()]))
|
||||
assert "Message de l'organisation" not in pages[0]
|
||||
|
||||
Reference in New Issue
Block a user