gendesign/backend/tests/services/exporters
Light1YT 2c19f35eff feat(exporters): Site Finder report PDF exporter (#989, 955-A3)
Add backend/app/services/exporters/report_pdf.py: export_report_pdf(report)->bytes,
the additive PDF counterpart to excel.export_report_xlsx (#991). Renders a
SiteFinderReport (#987) to PDF via WeasyPrint across the 6 §13 content sections
(Сводка/Рынок сейчас/Будущий рынок/Продукт ТЗ/Сценарии/Скоринг).

Mirrors house style: _normalize (instance or as_dict), named-const titles/CSS/
microcopy, RU labels, None→"—", graceful-never-raise, ADVISORY marker, local
weasyprint import. All dynamic fields html.escape'd. STRICTLY ADDITIVE — zero
edits to the 3 live PDF exporters (tradein/layout/snapshot) per tech-analyst
blast-radius analysis; "unify pdf.py" deferred (would rewrite 3 working features
for no gain). Endpoint wiring is #959. 16 tests (render proven via Rosetta x86_64;
6 native-render cases need Docker/CI matched-arch libgobject — pure-logic green).
2026-06-03 14:08:26 +05:00
..
__init__.py feat(exporters): Excel exporter for SiteFinderReport (#991, 955-A5) (#1022) 2026-06-03 08:57:00 +00:00
test_excel.py feat(exporters): Excel exporter for SiteFinderReport (#991, 955-A5) (#1022) 2026-06-03 08:57:00 +00:00
test_report_pdf.py feat(exporters): Site Finder report PDF exporter (#989, 955-A3) 2026-06-03 14:08:26 +05:00