You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB
Python

from apistar_mail.mail import Message, Mailer, force_text
from apistar_mail.exc import MailUnicodeDecodeError
import pytest
settings = {
'EMAIL': {
'MAIL_SERVER': 'smtp.example.com',
'MAIL_USERNAME': 'fake@example.com',
'MAIL_PASSWORD': 'secret',
'MAIL_PORT': 587,
'MAIL_USE_TLS': True,
'MAIL_SUPPRESS_SEND': True,
'MAIL_DEFAULT_SENDER': 'fake@example.com'
}
}
def test_message_init():
msg = Message(subject="subject",
recipients=["fake@example.com"],
body="body")
assert msg.subject == "subject"
assert msg.recipients == ["fake@example.com"]
assert msg.body == "body"
def test_empty_recipient_list_init():
msg = Message(subject="subject")
assert msg.recipients == []
def test_add_recipient():
msg1 = Message(subject="subject")
assert msg1.recipients == []
msg1.add_recipient("fake@example.com")
assert len(msg1.recipients) == 1
assert msg1.recipients[0] == "fake@example.com"
def test_empty_cc_list():
msg = Message(subject="subject",
recipients=['fake@example.com']
)
assert msg.cc == []
def test_raise_unicode_decode_error():
value = b'\xe5\x93\x88\xe5\x93\x88'
with pytest.raises(MailUnicodeDecodeError) as excinfo:
force_text(value, encoding='ascii')
assert 'You passed in' in str(excinfo)