-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
31 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
from __future__ import with_statement | ||
|
||
from flask import Flask, current_app as app | ||
import flask_email as mail | ||
from flask.ext.email.backends.base import BaseMail | ||
from flask.ext.email.backends.console import Mail as ConsoleMail | ||
from flask.ext.email.backends.smtp import Mail as SMTPMail | ||
|
@@ -56,11 +57,11 @@ def disable(self): | |
class CustomMail(BaseMail): | ||
def __init__(self, *args, **kwargs): | ||
super(CustomMail, self).__init__(*args, **kwargs) | ||
self.outbox = [] | ||
self.test_outbox = [] | ||
|
||
def send_messages(self, email_messages): | ||
# Messages are stored in a instance variable for testing. | ||
self.outbox.extend(email_messages) | ||
self.test_outbox.extend(email_messages) | ||
return len(email_messages) | ||
|
||
|
||
|
@@ -69,7 +70,6 @@ class FlaskTestCase(unittest.TestCase): | |
DEFAULT_FROM_EMAIL = '[email protected]' | ||
|
||
def setUp(self): | ||
|
||
self.app = Flask(__name__) | ||
self.app.config.from_object(self) | ||
self.assertTrue(self.app.testing) | ||
|
@@ -99,10 +99,10 @@ def test_arbitrary_keyword(self): | |
def test_custom_backend(self): | ||
"""Test custom backend defined in this suite.""" | ||
conn = get_connection('tests.CustomMail') | ||
self.assertTrue(hasattr(conn, 'outbox')) | ||
self.assertTrue(hasattr(conn, 'test_outbox')) | ||
email = EmailMessage('Subject', 'Content', '[email protected]', ['[email protected]'], headers={'From': '[email protected]'}) | ||
conn.send_messages([email]) | ||
self.assertEqual(len(conn.outbox), 1) | ||
self.assertEqual(len(conn.test_outbox), 1) | ||
|
||
def test_backend_arg(self): | ||
"""Test backend argument of get_connection()""" | ||
|
@@ -123,35 +123,36 @@ def test_backend_arg(self): | |
MANAGERS=[('nobody', '[email protected]')]) | ||
def test_connection_arg(self): | ||
"""Test connection argument to send_mail(), et. al.""" | ||
mail.outbox = [] | ||
|
||
# Send using non-default connection | ||
connection = get_connection('tests.CustomMail') | ||
send_mail('Subject', 'Content', '[email protected]', ['[email protected]'], connection=connection) | ||
self.assertEqual(connection.outbox, []) | ||
self.assertEqual(len(connection.outbox), 1) | ||
self.assertEqual(connection.outbox[0].subject, 'Subject') | ||
self.assertEqual(mail.outbox, []) | ||
self.assertEqual(len(connection.test_outbox), 1) | ||
self.assertEqual(connection.test_outbox[0].subject, 'Subject') | ||
|
||
connection = get_connection('tests.CustomMail') | ||
send_mass_mail([ | ||
('Subject1', 'Content1', '[email protected]', ['[email protected]']), | ||
('Subject2', 'Content2', '[email protected]', ['[email protected]']), | ||
], connection=connection) | ||
self.assertEqual(connection.outbox, []) | ||
self.assertEqual(len(connection.outbox), 2) | ||
self.assertEqual(connection.outbox[0].subject, 'Subject1') | ||
self.assertEqual(connection.outbox[1].subject, 'Subject2') | ||
self.assertEqual(mail.outbox, []) | ||
self.assertEqual(len(connection.test_outbox), 2) | ||
self.assertEqual(connection.test_outbox[0].subject, 'Subject1') | ||
self.assertEqual(connection.test_outbox[1].subject, 'Subject2') | ||
|
||
connection = get_connection('tests.CustomMail') | ||
mail_admins('Admin message', 'Content', connection=connection) | ||
self.assertEqual(connection.outbox, []) | ||
self.assertEqual(len(connection.outbox), 1) | ||
self.assertEqual(connection.outbox[0].subject, '[Flask] Admin message') | ||
self.assertEqual(mail.outbox, []) | ||
self.assertEqual(len(connection.test_outbox), 1) | ||
self.assertEqual(connection.test_outbox[0].subject, '[Flask] Admin message') | ||
|
||
connection = get_connection('tests.CustomMail') | ||
mail_managers('Manager message', 'Content', connection=connection) | ||
self.assertEqual(connection.outbox, []) | ||
self.assertEqual(len(connection.outbox), 1) | ||
self.assertEqual(connection.outbox[0].subject, '[Flask] Manager message') | ||
self.assertEqual(mail.outbox, []) | ||
self.assertEqual(len(connection.test_outbox), 1) | ||
self.assertEqual(connection.test_outbox[0].subject, '[Flask] Manager message') | ||
|
||
|
||
class BaseEmailBackendTests(object): | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,19 +3,23 @@ | |
|
||
from flask import current_app as app | ||
from flask.ext.email.backends.locmem import Mail | ||
from flask.ext.email.backends import locmem | ||
import flask_email as mail | ||
from flask.ext.email.message import EmailMessage | ||
|
||
from . import BaseEmailBackendTests, FlaskTestCase | ||
|
||
class LocmemBackendTests(BaseEmailBackendTests, FlaskTestCase): | ||
EMAIL_BACKEND = 'flask.ext.email.backends.locmem.Mail' | ||
|
||
def setUp(self): | ||
super(LocmemBackendTests, self).setUp() | ||
self.flush_mailbox() | ||
|
||
def get_mailbox_content(self): | ||
return [m.message() for m in locmem.outbox] | ||
return [m.message() for m in mail.outbox] | ||
|
||
def flush_mailbox(self): | ||
locmem.outbox = [] | ||
mail.outbox = [] | ||
|
||
def test_locmem_shared_messages(self): | ||
""" | ||
|
@@ -26,4 +30,4 @@ def test_locmem_shared_messages(self): | |
email = EmailMessage('Subject', 'Content', '[email protected]', ['[email protected]'], headers={'From': '[email protected]'}) | ||
connection.send_messages([email]) | ||
connection2.send_messages([email]) | ||
self.assertEqual(len(locmem.outbox), 2) | ||
self.assertEqual(len(mail.outbox), 2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -171,7 +171,7 @@ def test_encoding(self): | |
self.assertEqual(msg.message().get_payload(1).as_string(), 'Content-Type: text/html; charset="iso-8859-1"\nMIME-Version: 1.0\nContent-Transfer-Encoding: quoted-printable\n\n<p>Firstname S=FCrname is a <strong>great</strong> guy.</p>') | ||
|
||
def test_attachments(self): | ||
"""Regression test for #9367""" | ||
"""Regression test for Django #9367""" | ||
headers = {"Date": "Fri, 09 Nov 2001 01:08:47 -0000", "Message-ID": "foo"} | ||
subject, from_email, to = 'hello', '[email protected]', '[email protected]' | ||
text_content = 'This is an important message.' | ||
|