Skip to main content

A Mailpit API Client

Project description

API-client for https://github.com/axllent/mailpit written in Python

Authors:

Lars Liedtke <corvan@gmx.de>

Version:

0.12.2

Go to the documentation

Motivation

For work, I thought about introducing integration testing. We are working with Odoo and I wanted to test if e-mails created by Odoo really were sent. I remembered mailhog, which I discovered to be abandoned. Searching for an alternative, I found Mailpit - for which I decided to write an API-client in my free time.

Install

If you want to use the library with unittest:

pip install mailpit-api-client

If you want to use the library with pytest:

pip install mailpit-api-client[pytest]

Usage

this library - as is Mailpit - is mostly meant for testing. Giving the url of Mailpit to a tool to send e-mail messages to and then use this client to check on the API if the mail was sent.

Client

The client itself consists of the class API in mailpit/client/api.py, that offers methods, which query the API-Endpoints and are named respectively. To use this class, simply try something like this. You have to have Mailpit running on localhost for this [1] .

import mailpit.client.api
api = mailpit.client.api.API("localhost:8025")
messages = api.get_messages()

Additionally, there are some model-classes that wrap the API’s responses. For example with

messages = api.get_messages()

messages will be an instance of mailpit.client.models.Messages , which you can find in link:mailpit/client/models/messages.py[mailpit/client/models.py]. + The model-classes’ attributes are named the same as Mailpit’s responses, as documented in the API’s README.md, but as is convention in Python in Snakecase.

For examples have a look at the link:tests[tests]

Testing

To make testing easier there are test-helpers inside the mailpit.testing package.

unittest

In order to provide some convenience a test-case class has been created with the name EMailTestCase deriving from unittest.TestCase, which is meant to be inherited from, as you would do from TestCase:

from mailpit.testing.unittest import EMailTestCase

class MyTest(EMailTestCase):

     def test_sending_email():
        ...

The class adds a few methods and attributes, so that you are able to assert, if your message has been sent, or if two messages are equal.

pytest

tbd

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mailpit-api-client-0.12.2.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

mailpit_api_client-0.12.2-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file mailpit-api-client-0.12.2.tar.gz.

File metadata

  • Download URL: mailpit-api-client-0.12.2.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for mailpit-api-client-0.12.2.tar.gz
Algorithm Hash digest
SHA256 6d5c3573e953b5f04e669c56fc6d6f21a1ffa3c4b87638cbfe2637dc01c8a695
MD5 9a2da2e6f93fdd3f2e0192a130820941
BLAKE2b-256 19942bda62a1f42ae0d97df5144a5baae8c96f6fe6beb36895ed3e6e9e49cf66

See more details on using hashes here.

File details

Details for the file mailpit_api_client-0.12.2-py3-none-any.whl.

File metadata

File hashes

Hashes for mailpit_api_client-0.12.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a10f9735f23c3f87972d21b58fee7b444ac5ee2a50120707c068001c2207867d
MD5 a4305b04204aed65b69bbd9ea154c44d
BLAKE2b-256 a60576f3a1d6a28f02a8ad90fd479029485eeb71d395b69f927f425e6e3aa850

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page