Skip to content

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 generate execution.
  • allure_report_exporter/parse_widgets.py
  • Parsing widgets/*.json and data/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

  1. Generate official Allure HTML output.
  2. Parse report widgets and test-case JSON.
  3. Build normalized in-memory model.
  4. Render print HTML for review/debugging and PDF generation.
  5. 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).