changeset 5353:544aa933aea7

e-mail: add trivial test case Add a first trivial e-mail test, new tests to be added in subsequent commits.
author Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
date Sun, 02 Aug 2015 20:46:17 +0200
parents 1cdfd54a9c8f
children 1339fd56f302
files kallithea/tests/other/test_mail.py
diffstat 1 files changed, 46 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kallithea/tests/other/test_mail.py	Sun Aug 02 20:46:17 2015 +0200
@@ -0,0 +1,46 @@
+import mock
+
+import kallithea
+from kallithea.tests import *
+from kallithea.model.db import User
+
+class smtplib_mock(object):
+
+    @classmethod
+    def SMTP(cls, server, port, local_hostname):
+        return smtplib_mock()
+
+    def ehlo(self):
+        pass
+    def quit(self):
+        pass
+    def sendmail(self, sender, dest, msg):
+        smtplib_mock.lastsender = sender
+        smtplib_mock.lastdest = dest
+        smtplib_mock.lastmsg = msg
+        pass
+
+@mock.patch('kallithea.lib.rcmail.smtp_mailer.smtplib', smtplib_mock)
+class TestMail(BaseTestCase):
+
+    def test_send_mail_trivial(self):
+        mailserver = 'smtp.mailserver.org'
+        recipients = ['rcpt1', 'rcpt2']
+        envelope_from = 'noreply@mailserver.org'
+        subject = 'subject'
+        body = 'body'
+        html_body = 'html_body'
+
+        config_mock = {
+                'smtp_server': mailserver,
+                'app_email_from': envelope_from,
+        }
+        with mock.patch('kallithea.lib.celerylib.tasks.config', config_mock):
+            kallithea.lib.celerylib.tasks.send_email(recipients, subject, body, html_body)
+
+        self.assertSetEqual(smtplib_mock.lastdest, set(recipients))
+        self.assertEqual(smtplib_mock.lastsender, envelope_from)
+        self.assertIn('From: %s' % envelope_from, smtplib_mock.lastmsg)
+        self.assertIn('Subject: %s' % subject, smtplib_mock.lastmsg)
+        self.assertIn(body, smtplib_mock.lastmsg)
+        self.assertIn(html_body, smtplib_mock.lastmsg)