49 lines
1.3 KiB
Markdown
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.
|