Architecture¶
The project is split into a reusable library layer and a thin CLI.
Module map¶
allure_report_exporter/cli.py- Argument parsing and orchestration.
allure_report_exporter/allure_cli.py- Allure binary detection, version check, and
allure generateexecution. allure_report_exporter/parse_widgets.py- Parsing
widgets/*.jsonanddata/test-cases/*.json. allure_report_exporter/model.py- Dataclasses for internal report model.
allure_report_exporter/render_html.py- Jinja2 render of print-friendly HTML report.
allure_report_exporter/pdf.py- Playwright PDF rendering from local print HTML.
allure_report_exporter/docx.py- DOCX generation via
python-docx. allure_report_exporter/assets/- Default CSS and HTML template.
Data flow¶
- Generate official Allure HTML output.
- Parse report widgets and test-case JSON.
- Build normalized in-memory model.
- Render print HTML for review/debugging and PDF generation.
- Render DOCX from the same model.
Design constraints¶
- Avoid parsing raw Allure result internals directly.
- Tolerate missing widget files and missing attachments.
- Keep behavior deterministic for CI usage.
- Keep CLI thin to support future integrations (for example, editor extension UI).