Metadata-Version: 2.4
Name: pytest-alerts
Version: 1.6.0
Summary: A pytest plugin for sending test results to Slack and Telegram
Project-URL: Homepage, https://github.com/nikolaout/pytest-alerts
Project-URL: Repository, https://github.com/nikolaout/pytest-alerts.git
Project-URL: Documentation, https://github.com/nikolaout/pytest-alerts#readme
Project-URL: Changelog, https://github.com/nikolaout/pytest-alerts/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/nikolaout/pytest-alerts/issues
Author-email: Nikola <nikolaoutwork@gmail.com>
License: pytest-alerts License
        
        Copyright (c) 2025 Nikola
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, and distribute the Software, subject to
        the following conditions:
        
        1. The above copyright notice and this permission notice shall be included in all
           copies or substantial portions of the Software.
        
        2. Commercial Use Restriction:
           The Software and any modifications thereof may not be sold, licensed, or
           otherwise distributed for a fee or commercial gain without explicit written
           permission from the copyright holder. This includes, but is not limited to:
           - Selling the Software as a standalone product
           - Including the Software as part of a commercial product
           - Offering the Software as a paid service
           - Reselling modified versions of the Software
        
        3. Permitted Uses:
           - Personal use
           - Educational use
           - Non-commercial organization use
           - Internal use in commercial organizations (where the Software is used but not sold)
           - Contributing improvements back to the original project
        
        4. Attribution Requirement:
           Any distribution of the Software or modified versions must maintain attribution
           to the original author and project.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
        For commercial licensing inquiries, please contact: nikolaoutwork@gmail.com
License-File: LICENSE
Keywords: alerts,notifications,pytest,slack,telegram
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.8
Requires-Dist: pytest>=7.4.0
Requires-Dist: requests>=2.26.0
Requires-Dist: typing-extensions>=4.9.0; python_version < '3.10'
Provides-Extra: dev
Requires-Dist: black>=22.3.0; extra == 'dev'
Requires-Dist: build>=1.2.2.post1; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: twine>=6.1.0; extra == 'dev'
Description-Content-Type: text/markdown

# pytest-alerts

A pytest plugin that sends test results to Slack and Telegram with beautiful, customizable formatting.

[![PyPI version](https://badge.fury.io/py/pytest-alerts.svg)](https://badge.fury.io/py/pytest-alerts)
[![Python Versions](https://img.shields.io/pypi/pyversions/pytest-alerts.svg)](https://pypi.org/project/pytest-alerts/)

## Overview

pytest-alerts is a powerful pytest plugin that automatically sends your test results to Slack and Telegram. It provides:

- 📲 Real-time test notifications to Slack and Telegram
- 🎨 Modern, visually appealing message formatting
- 📊 Comprehensive test statistics with progress bars
- 🔍 Configurable error reporting and details
- ⚙️ Extensive customization options
- 🔄 Full compatibility with pytest-xdist

## Quick Start

### Installation

```bash
pip install pytest-alerts
```

### Basic Usage

1. Configure your messaging platform:

   **For Slack:**
   ```bash
   pytest --slack_webhook=YOUR_WEBHOOK_URL
   ```

   **For Telegram:**
   ```bash
   pytest --telegram_bot_token=BOT_TOKEN --telegram_chat_id=CHAT_ID
   ```

2. Run with both platforms:
   ```bash
   pytest --slack_webhook=URL --telegram_bot_token=TOKEN --telegram_chat_id=ID
   ```

## Configuration Options

### Common Options

| Option | Description | Default |
|--------|-------------|---------|
| `--show_details` | Include error details in notifications | False |
| `--hide_errors` | Hide error messages from notifications | False |

### Slack-specific Options

| Option | Description | Required |
|--------|-------------|----------|
| `--slack_webhook` | Slack webhook URL | Yes |
| `--slack_icon` | Bot icon emoji | No |

### Telegram-specific Options

| Option | Description | Required |
|--------|-------------|----------|
| `--telegram_bot_token` | Bot API token | Yes |
| `--telegram_chat_id` | Target chat ID | Yes |

## Message Formatting

### Default Format
Messages include:
- Test run summary (passed/failed/skipped)
- Progress bars for visual representation
- Duration of test run
- Error details (if enabled)
- Project/branch information (if available)

### Customization
- Use `--show_details` for full error traces
- Use `--hide_errors` to omit error messages
- Platform-specific formatting options available

## Advanced Usage

### CI/CD Integration
Example GitHub Actions workflow:
```yaml
steps:
  - uses: actions/checkout@v2
  - name: Run tests with notifications
    run: |
      pip install pytest-alerts
      pytest --slack_webhook=${{ secrets.SLACK_WEBHOOK }} --telegram_bot_token=${{ secrets.TELEGRAM_BOT_TOKEN }} --telegram_chat_id=${{ secrets.TELEGRAM_CHAT_ID }}
```

## Limitations

- Maximum message size varies by platform
- Rate limits apply (platform-specific)
- Some formatting options are platform-dependent

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- 📖 [Documentation](https://github.com/nikolaout/pytest-alerts)
- 🐛 [Issue Tracker](https://github.com/nikolaout/pytest-alerts/issues)
- 💬 [Discussions](https://github.com/nikolaout/pytest-alerts/discussions)

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for version history and changes.
