Files
serienbrief_django/app/mailmerge/tests/test_preview_integration.py
T
2026-05-22 08:40:04 +02:00

43 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Integrationstest mit echtem LibreOffice.
Per Default übersprungen — nur aktiv, wenn pytest explizit mit
'-m integration' aufgerufen wird ODER 'soffice' im PATH gefunden wird.
Beispielaufruf im Container:
docker compose exec web pytest -m integration mailmerge/tests/test_preview_integration.py
"""
from __future__ import annotations
import io
import shutil
from pathlib import Path
import pytest
from mailmerge.services.preview import build_preview
from mailmerge.tests.conftest import CSV_VALID
pytestmark = [
pytest.mark.integration,
pytest.mark.skipif(
shutil.which("soffice") is None,
reason="LibreOffice (soffice) nicht im PATH Integrationstest übersprungen",
),
]
def test_real_libreoffice_produces_pdf(docx_file_on_disk):
"""End-to-End mit echtem LibreOffice. Erwartet gültige PDF-Bytes."""
csv_buf = io.BytesIO(CSV_VALID.encode("utf-8"))
result = build_preview(docx_file_on_disk, csv_buf)
# PDF-Magic-Bytes
assert result.pdf_bytes.startswith(b"%PDF-"), (
f"Kein PDF zurückbekommen, erste 8 Bytes: {result.pdf_bytes[:8]!r}"
)
# Eine Vorschau sollte mindestens ein paar KB groß sein sonst stimmt was nicht
assert len(result.pdf_bytes) > 500