Show More
@@ -264,15 +264,14 b' def send_email(recipients, subject, body' | |||||
264 | email_prefix = email_config.get('email_prefix', '') |
|
264 | email_prefix = email_config.get('email_prefix', '') | |
265 | if email_prefix: |
|
265 | if email_prefix: | |
266 | subject = "%s %s" % (email_prefix, subject) |
|
266 | subject = "%s %s" % (email_prefix, subject) | |
267 | if recipients is None: |
|
267 | ||
|
268 | if not recipients: | |||
268 | # if recipients are not defined we send to email_config + all admins |
|
269 | # if recipients are not defined we send to email_config + all admins | |
269 | admins = [u.email for u in User.query() |
|
270 | admins = [u.email for u in User.query() | |
270 | .filter(User.admin == True).all()] |
|
271 | .filter(User.admin == True).all()] | |
271 | recipients = [email_config.get('email_to')] + admins |
|
272 | recipients = [email_config.get('email_to')] + admins | |
272 | log.warning("recipients not specified for '%s' - sending to admins %s", subject, ' '.join(recipients)) |
|
273 | ||
273 | elif not recipients: |
|
274 | log.warning("No recipients specified for '%s' - sending to admins %s", subject, ' '.join(recipients)) | |
274 | log.error("No recipients specified") |
|
|||
275 | return False |
|
|||
276 |
|
275 | |||
277 | mail_from = email_config.get('app_email_from', 'Kallithea') |
|
276 | mail_from = email_config.get('app_email_from', 'Kallithea') | |
278 | user = email_config.get('smtp_username') |
|
277 | user = email_config.get('smtp_username') |
@@ -44,3 +44,27 b' class TestMail(BaseTestCase):' | |||||
44 | self.assertIn('Subject: %s' % subject, smtplib_mock.lastmsg) |
|
44 | self.assertIn('Subject: %s' % subject, smtplib_mock.lastmsg) | |
45 | self.assertIn(body, smtplib_mock.lastmsg) |
|
45 | self.assertIn(body, smtplib_mock.lastmsg) | |
46 | self.assertIn(html_body, smtplib_mock.lastmsg) |
|
46 | self.assertIn(html_body, smtplib_mock.lastmsg) | |
|
47 | ||||
|
48 | def test_send_mail_no_recipients(self): | |||
|
49 | mailserver = 'smtp.mailserver.org' | |||
|
50 | recipients = [] | |||
|
51 | envelope_from = 'noreply@mailserver.org' | |||
|
52 | email_to = 'admin@mailserver.org' | |||
|
53 | subject = 'subject' | |||
|
54 | body = 'body' | |||
|
55 | html_body = 'html_body' | |||
|
56 | ||||
|
57 | config_mock = { | |||
|
58 | 'smtp_server': mailserver, | |||
|
59 | 'app_email_from': envelope_from, | |||
|
60 | 'email_to': email_to, | |||
|
61 | } | |||
|
62 | with mock.patch('kallithea.lib.celerylib.tasks.config', config_mock): | |||
|
63 | kallithea.lib.celerylib.tasks.send_email(recipients, subject, body, html_body) | |||
|
64 | ||||
|
65 | self.assertSetEqual(smtplib_mock.lastdest, set([TEST_USER_ADMIN_EMAIL, email_to])) | |||
|
66 | self.assertEqual(smtplib_mock.lastsender, envelope_from) | |||
|
67 | self.assertIn('From: %s' % envelope_from, smtplib_mock.lastmsg) | |||
|
68 | self.assertIn('Subject: %s' % subject, smtplib_mock.lastmsg) | |||
|
69 | self.assertIn(body, smtplib_mock.lastmsg) | |||
|
70 | self.assertIn(html_body, smtplib_mock.lastmsg) |
General Comments 0
You need to be logged in to leave comments.
Login now