import gzip import io import zipfile from email.message import EmailMessage from pathlib import Path import pytest from app.attachment_extractor import AttachmentExtractionError, extract_dmarc_attachments, extract_payload def _xml() -> bytes: return Path("tests/fixtures/sample_dmarc.xml").read_bytes() def test_gzip_attachment_extraction(): gz = gzip.compress(_xml()) reports = extract_payload("report.xml.gz", "application/octet-stream", gz, 20) assert len(reports) == 1 assert reports[0].payload.startswith(b"