Exemple #1
0
    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', '*****@*****.**', ['*****@*****.**'], connection=connection)
        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', '*****@*****.**', ['*****@*****.**']),
                ('Subject2', 'Content2', '*****@*****.**', ['*****@*****.**']),
            ], connection=connection)
        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(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(mail.outbox, [])
        self.assertEqual(len(connection.test_outbox), 1)
        self.assertEqual(connection.test_outbox[0].subject, '[Flask] Manager message')
Exemple #2
0
    def test_file_sessions(self):
        """Make sure opening a connection creates a new file"""
        msg = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], headers={'From': '*****@*****.**'})
        connection = get_connection()
        connection.send_messages([msg])

        self.assertEqual(len(os.listdir(self.tmp_dir)), 1)
        message = message_from_file(open(os.path.join(self.tmp_dir, os.listdir(self.tmp_dir)[0])))
        self.assertEqual(message.get_content_type(), 'text/plain')
        self.assertEqual(message.get('subject'), 'Subject')
        self.assertEqual(message.get('from'), '*****@*****.**')
        self.assertEqual(message.get('to'), '*****@*****.**')

        connection2 = get_connection()
        connection2.send_messages([msg])
        self.assertEqual(len(os.listdir(self.tmp_dir)), 2)

        connection.send_messages([msg])
        self.assertEqual(len(os.listdir(self.tmp_dir)), 2)

        msg.connection = get_connection()
        self.assertTrue(connection.open())
        msg.send()
        self.assertEqual(len(os.listdir(self.tmp_dir)), 3)
        msg.send()
        self.assertEqual(len(os.listdir(self.tmp_dir)), 3)
    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', '*****@*****.**', ['*****@*****.**'], connection=connection)
        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', '*****@*****.**', ['*****@*****.**']),
                ('Subject2', 'Content2', '*****@*****.**', ['*****@*****.**']),
            ], connection=connection)
        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(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(mail.outbox, [])
        self.assertEqual(len(connection.test_outbox), 1)
        self.assertEqual(connection.test_outbox[0].subject, '[Flask] Manager message')
Exemple #4
0
    def test_file_sessions(self):
        """Make sure opening a connection creates a new file"""
        msg = EmailMessage('Subject',
                           'Content',
                           '*****@*****.**', ['*****@*****.**'],
                           headers={'From': '*****@*****.**'})
        connection = get_connection()
        connection.send_messages([msg])

        self.assertEqual(len(os.listdir(self.tmp_dir)), 1)
        message = message_from_file(
            open(os.path.join(self.tmp_dir,
                              os.listdir(self.tmp_dir)[0])))
        self.assertEqual(message.get_content_type(), 'text/plain')
        self.assertEqual(message.get('subject'), 'Subject')
        self.assertEqual(message.get('from'), '*****@*****.**')
        self.assertEqual(message.get('to'), '*****@*****.**')

        connection2 = get_connection()
        connection2.send_messages([msg])
        self.assertEqual(len(os.listdir(self.tmp_dir)), 2)

        connection.send_messages([msg])
        self.assertEqual(len(os.listdir(self.tmp_dir)), 2)

        msg.connection = get_connection()
        self.assertTrue(connection.open())
        msg.send()
        self.assertEqual(len(os.listdir(self.tmp_dir)), 3)
        msg.send()
        self.assertEqual(len(os.listdir(self.tmp_dir)), 3)
Exemple #5
0
 def test_message_cc_header(self):
     """
     Regression test for Django #7722
     """
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], cc=['*****@*****.**'])
     get_connection().send_messages([email])
     message = self.get_the_message()
     self.assertStartsWith(message.as_string(), 'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\nSubject: Subject\nFrom: [email protected]\nTo: [email protected]\nCc: [email protected]\nDate: ')
 def test_message_cc_header(self):
     """
     Regression test for Django #7722
     """
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], cc=['*****@*****.**'])
     get_connection().send_messages([email])
     message = self.get_the_message()
     self.assertStartsWith(message.as_string(), 'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\nSubject: Subject\nFrom: [email protected]\nTo: [email protected]\nCc: [email protected]\nDate: ')
Exemple #7
0
 def test_custom_backend(self):
     """Test custom backend defined in this suite."""
     conn = get_connection('tests.CustomMail')
     self.assertTrue(hasattr(conn, 'test_outbox'))
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], headers={'From': '*****@*****.**'})
     conn.send_messages([email])
     self.assertEqual(len(conn.test_outbox), 1)
Exemple #8
0
 def test_arbitrary_keyword(self):
     """
     Make sure that get_connection() accepts arbitrary keyword that might be
     used with custom backends.
     """
     c = get_connection(fail_silently=True, foo='bar')
     self.assertTrue(c.fail_silently)
 def test_custom_backend(self):
     """Test custom backend defined in this suite."""
     conn = get_connection('tests.CustomMail')
     self.assertTrue(hasattr(conn, 'test_outbox'))
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], headers={'From': '*****@*****.**'})
     conn.send_messages([email])
     self.assertEqual(len(conn.test_outbox), 1)
 def test_arbitrary_keyword(self):
     """
     Make sure that get_connection() accepts arbitrary keyword that might be
     used with custom backends.
     """
     c = get_connection(fail_silently=True, foo='bar')
     self.assertTrue(c.fail_silently)
Exemple #11
0
 def test_console_stream_kwarg(self):
     """
     Test that the console backend can be pointed at an arbitrary stream.
     """
     s = StringIO()
     connection = get_connection(self.EMAIL_BACKEND, stream=s)
     send_mail('Subject', 'Content', '*****@*****.**', ['*****@*****.**'], connection=connection)
     self.assertTrue(s.getvalue().startswith('Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\nSubject: Subject\nFrom: [email protected]\nTo: [email protected]\nDate: '))
Exemple #12
0
 def test_send_many(self):
     email1 = EmailMessage('Subject', 'Content1', '*****@*****.**', ['*****@*****.**'])
     email2 = EmailMessage('Subject', 'Content2', '*****@*****.**', ['*****@*****.**'])
     num_sent = get_connection().send_messages([email1, email2])
     self.assertEqual(num_sent, 2)
     messages = self.get_mailbox_content()
     self.assertEqual(len(messages), 2)
     self.assertEqual(messages[0].get_payload(), "Content1")
     self.assertEqual(messages[1].get_payload(), "Content2")
Exemple #13
0
 def test_send(self):
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'])
     num_sent = get_connection().send_messages([email])
     self.assertEqual(num_sent, 1)
     message = self.get_the_message()
     self.assertEqual(message["subject"], "Subject")
     self.assertEqual(message.get_payload(), "Content")
     self.assertEqual(message["from"], "*****@*****.**")
     self.assertEqual(message.get_all("to"), ["*****@*****.**"])
 def test_send_many(self):
     email1 = EmailMessage('Subject', 'Content1', '*****@*****.**', ['*****@*****.**'])
     email2 = EmailMessage('Subject', 'Content2', '*****@*****.**', ['*****@*****.**'])
     num_sent = get_connection().send_messages([email1, email2])
     self.assertEqual(num_sent, 2)
     messages = self.get_mailbox_content()
     self.assertEqual(len(messages), 2)
     self.assertEqual(messages[0].get_payload(), "Content1")
     self.assertEqual(messages[1].get_payload(), "Content2")
 def test_send(self):
     email = EmailMessage('Subject', 'Content', '*****@*****.**', ['*****@*****.**'])
     num_sent = get_connection().send_messages([email])
     self.assertEqual(num_sent, 1)
     message = self.get_the_message()
     self.assertEqual(message["subject"], "Subject")
     self.assertEqual(message.get_payload(), "Content")
     self.assertEqual(message["from"], "*****@*****.**")
     self.assertEqual(message.get_all("to"), ["*****@*****.**"])
Exemple #16
0
 def test_console_stream_kwarg(self):
     """
     Test that the console backend can be pointed at an arbitrary stream.
     """
     s = StringIO()
     connection = get_connection(self.EMAIL_BACKEND, stream=s)
     send_mail('Subject',
               'Content',
               '*****@*****.**', ['*****@*****.**'],
               connection=connection)
     self.assertTrue(s.getvalue().startswith(
         'Content-Type: text/plain; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\nSubject: Subject\nFrom: [email protected]\nTo: [email protected]\nDate: '
     ))
 def test_backend_arg(self):
     """Test backend argument of get_connection()"""
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.smtp.Mail'), SMTPMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.locmem.Mail'), LocMemMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.dummy.Mail'), DummyMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.console.Mail'), ConsoleMail))
     tmp_dir = tempfile.mkdtemp()
     try:
         self.assertTrue(isinstance(get_connection('flask.ext.email.backends.filebased.Mail', file_path=tmp_dir), FilebasedMail))
     finally:
         shutil.rmtree(tmp_dir)
     self.assertTrue(isinstance(get_connection(), LocMemMail))
Exemple #18
0
 def test_backend_arg(self):
     """Test backend argument of get_connection()"""
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.smtp.Mail'), SMTPMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.locmem.Mail'), LocMemMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.dummy.Mail'), DummyMail))
     self.assertTrue(isinstance(get_connection('flask.ext.email.backends.console.Mail'), ConsoleMail))
     tmp_dir = tempfile.mkdtemp()
     try:
         self.assertTrue(isinstance(get_connection('flask.ext.email.backends.filebased.Mail', file_path=tmp_dir), FilebasedMail))
     finally:
         shutil.rmtree(tmp_dir)
     self.assertTrue(isinstance(get_connection(), LocMemMail))