smtp-test-server/README.md

49 lines
1.3 KiB
Markdown

# smtp-test-server
Based on the [`aiosmtpd`](https://github.com/aio-libs/aiosmtpd), this packages offers you a simple way to integrate
a SMTP server into your test code.
Currently, the server does not support authentication, TLS or anything special instead of sending mails.
All mails are collected in the `messages` property of the mock and can be evaluated there.
Looking for a `pytest` SMTP mock fixture? Take a look at this project:
[git.codebau.dev/pytest-plugins/pytest-smtp-test-server](https://git.codebau.dev/pytest-plugins/pytest-smtp-test-server).
## Installation
### Installation with "pip"
```Bash
pip install smtp-test-server
```
### Installation with "poetry"
```Bash
poetry add --group dev smtp-test-server
```
## Usage
Simple usage, with auto assigning a free port number on `127.0.0.1`:
```Python
from smtp_test_server.context import SmtpMockServer
def test_send_mail():
with SmtpMockServer() as smtp_mock:
my_mail_method(smtp_host=smtp_mock.host, smtp_port=smtp_mock.port)
assert len(smtp_mock.messages) == 1
assert smtp_mock.messages[0]["from"] == "my-test@sender.org"
```
Want to have more control over host and port? Use it like this:
```Python
with SmtpMockServer(bind_host="223.12.9.177", bind_port=2525):
...
```
Ports are automatically closed when leaving the context.