anvil.testing.email Module

The anvil.testing.email module contains helpers for testing server code that sends email. They only work in server tests.

Classes

SentEmail

Functions

capture_emails

Classes

SentEmail

An email the app’s code sent inside a capture_emails() block. Its attributes are the arguments the code passed to anvil.email.send().


SentEmail Attributes

attachments - list(anvil.Media instance)

The attachments.

bcc - bcc

The bcc argument the code passed to anvil.email.send(): a string, a list of strings, or None.

cc - cc

The cc argument the code passed to anvil.email.send(): a string, a list of strings, or None.

from_address - string

The from_address the code passed to anvil.email.send(), or None.

from_name - string

The from_name the code passed to anvil.email.send(), or None.

html - string

The HTML content, or None.

in_reply_to - string

The Message-ID this email replies to, eg when sent with Message.reply(), or None.

inline_attachments - dict(string,anvil.Media instance)

The inline attachments, by Content-ID.

message_id - string

The Message-ID that anvil.email.send() returned in its SendReport.

references - string

The References header, or None.

subject - string

The subject line, or None.

text - string

The plain-text content, or None.

to - to

The to argument the code passed to anvil.email.send(): a string, a list of strings, or None.


Functions

capture_emails()

Use in a with block to capture the emails the app’s code sends, including from background tasks and Message.reply().

Yields a list when the block ends, filled with SentEmail objects for the emails sent inside the block. Tests never send real email. Wait inside the block for any background tasks whose emails you want to check.

with capture_emails() as emails:
    place_order(user, items)

[email] = emails
assert email.to == ["Alice <alice@example.com>"]



Do you still have questions?

Our Community Forum is full of helpful information and Anvil experts.

anvil.testing.email