allure-report-mailer
Parse Allure BDD HTML test reports into Excel/HTML summaries and email them.
Three stages, each usable independently or chained via a pipeline command:
- parse — reads Allure HTML report artifacts (
widgets/summary.json,widgets/environment.json,data/test-cases/*.jsonembedded in each report), aggregates by (ID, FileName), dedupes to one row per test ID keeping the most recent run, and writestest_runtime_data.xlsx+test_env.json. - render — renders
test_runtime_data.xlsxinto a standalone, timestamped HTML report with client-side filter/sort, a color palette, and a configurable title. - email — finds the most recently generated HTML report and emails a compact, Outlook-safe
summary (stats table + environment table) via SMTP, with the full report attached as a
.zip.
Install
pip install allure-report-mailer
Usage
# Run all three stages in sequence
allure-report-mailer pipeline /path/to/allure/artifacts --output-dir ./out
# Or run each stage independently
allure-report-mailer parse /path/to/allure/artifacts --output-dir ./out
allure-report-mailer render ./out/test_runtime_data.xlsx ./out --report-title "My Regression Report"
allure-report-mailer email --report-dir ./out
Run allure-report-mailer --help, or allure-report-mailer <subcommand> --help for full option lists.
Email configuration
Secrets are read only from environment variables (never CLI flags, never hardcoded):
| Variable | Required | Default |
|---|---|---|
EMAIL_USER / EMAIL_PASS |
Yes | none |
EMAIL_FROM |
No | falls back to EMAIL_USER |
EMAIL_TO |
Yes | none (comma-separated) |
EMAIL_CC |
No | none (comma-separated) |
SMTP_HOST |
No | smtp.azurecomm.net |
SMTP_PORT |
No | 587 |
REPORT_DIR |
No | current directory |
The email's title, subject template, greeting/intro/closing copy, and environment-field labels can be
overridden without touching source via --email-config path/to/config.json:
{
"report_title": "Weekly Regression Report",
"subject_template": "{report_title} - {date}",
"email_body": {
"greeting": "Hi Team,",
"intro": "Please find below the test execution summary for the week of {date}."
}
}
Only the keys you want to override need to be present — everything else falls back to the built-in
defaults (see allure_report_mailer/config.py).
Development
pip install -e ".[dev]"
pytest --cov=allure_report_mailer --cov-report=term-missing
See SETUP.md for build/release steps.
Metadata
Release files for allure-report-mailer 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| allure_report_mailer-0.1.3.tar.gz | 41.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| allure_report_mailer-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 78.6 kB
Release files / allure_report_mailer-0.1.3.tar.gz
| Download URL | allure_report_mailer-0.1.3.tar.gz |
|---|---|
| Size | 41.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9e83924d561054653ef994179d2fc5913304b63d0cc291f8fe06793025d400c
|
|
BLAKE2b-256 checksum How to use checksums |
668bf9fa0c8cd70f88bd6d004dcb21a6ec4e8bc586e633476595c46f881e35b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Release files / allure_report_mailer-0.1.3-py3-none-any.whl
| Download URL | allure_report_mailer-0.1.3-py3-none-any.whl |
|---|---|
| Size | 37.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
faed8fdda062b227b1db7fcc33817ccd58a7a629244e2cadb0f57517a9066808
|
|
BLAKE2b-256 checksum How to use checksums |
d1db67ab6a5fbd066195dad152e16122c58dccb077c6205585959e82c4c7e266
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Security for allure-report-mailer 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.