https://github.com/postgrespro/pgpro-pytest-html-json-extractor
A tool to extract json data from pytest-html report.
https://github.com/postgrespro/pgpro-pytest-html-json-extractor
Last synced: 5 days ago
JSON representation
A tool to extract json data from pytest-html report.
- Host: GitHub
- URL: https://github.com/postgrespro/pgpro-pytest-html-json-extractor
- Owner: postgrespro
- License: mit
- Created: 2026-05-11T04:15:20.000Z (12 days ago)
- Default Branch: master
- Last Pushed: 2026-05-13T10:18:35.000Z (10 days ago)
- Last Synced: 2026-05-15T22:55:21.798Z (7 days ago)
- Language: Python
- Size: 49.8 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/postgrespro/pgpro-pytest-html-json-extractor/actions/workflows/ci.yml)
[](https://badge.fury.io/py/pgpro-pytest-html-json-extractor)
[](https://pypi.org/project/pgpro-pytest-html-json-extractor)
# pgpro-pytest-html-json-extractor
A tool to extract json data from pytest-html report. Developed and maintained by Postgres Professional.
## Key features
- Extractor supports pytest-html v4.0.2+
- Extractor produces JSON with unescaped HTML entities in log messages (for pytest-html v4.1.0+)
## Installation
You can install the package directly from the repository (until it's published to PyPI):
```bash
pip install pgpro-pytest-html-json-extractor
```
## Usage
After installation, the tool is available via the pgpro-pytest-html-json-extractor command.
### Basic Examples
Extract JSON from a report:
```bash
pgpro-pytest-html-json-extractor report.html -o report.json
```
### Command Line Arguments
| Argument | Shorthand | Required | Description | Default |
| :--- | :--- | :--- | :--- | :--- |
| `--version` | | No | Show program's version number and exit | None |
| `--out` | `-o` | Yes | Name of the output JSON file | None |
| `--verbose` | `-v` | No | Level of logging verbosity | `3` |
| `--no-check-json` | | No | Do not validate json data after extraction | None |
| `--unescape-logs` | | No | HTML entity decoding mode for logs (`auto`, `yes`, `no`) | `auto` |
| `--replace` | `-r` | No | Replace output if it exists | None |
| `input` | | Yes | Positional argument for HTML file | None |
#### Log Unescaping Modes (--unescape-logs)
The tool provides granular control over how HTML entities (like `"`, `&` or `"`) are handled within test logs:
- **auto (Default)**: Smart detection mode. Automatically decides whether to decode entities based on the detected pytest-html report version. It ensures that logs are restored to their original "human-readable" state while maintaining the safety of other report metadata.
- **yes**: Forceful decoding. Every HTML entity in the log field will be converted back to its literal character. Use this if you are dealing with heavily encoded custom output.
- **no**: Raw mode. Disables all decoding, leaving the log data exactly as it was stored in the HTML source (including "Russian Doll" double-encoding). Ideal for debugging report structure or forensic data analysis.
## Contributing
1. Fork the repository.
2. Create your feature branch (`git checkout -b feature/amazing-feature`).
3. Commit your changes (`git commit -m 'feat: add some amazing feature'`).
4. Push to the branch (`git push origin feature/amazing-feature`).
5. Open a Pull Request.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
© 2026 Postgres Professional