[damned-lies] Add test for mail sent to coordinator
- From: Claude Paroz <claudep src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [damned-lies] Add test for mail sent to coordinator
- Date: Tue, 11 Aug 2015 14:45:05 +0000 (UTC)
commit 40325c425b36c304df7c0fb6ec51fc14e9153985
Author: Claude Paroz <claude 2xlibre net>
Date: Tue Aug 11 16:42:32 2015 +0200
Add test for mail sent to coordinator
Thanks Grégoire Détrez for the initial patch (refs #753507).
Took advantage to modernize some code.
teams/models.py | 23 +++++++++++------------
teams/tests.py | 29 ++++++++++++++++++++++-------
2 files changed, 33 insertions(+), 19 deletions(-)
---
diff --git a/teams/models.py b/teams/models.py
index 8f322b8..d6f6051 100644
--- a/teams/models.py
+++ b/teams/models.py
@@ -23,6 +23,7 @@ from datetime import datetime, timedelta
from django.db import models
from django.core import mail
from django.utils import translation
+from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy, ugettext as _
from django.conf import settings
from django.contrib.sites.models import Site
@@ -196,18 +197,16 @@ class Team(models.Model):
recipients = [pers.email for pers in self.get_coordinators() if pers.email]
if not recipients:
return
- prev_lang = translation.get_language()
- translation.activate(self.language_set.all()[0].locale)
-
- message = u"%s\n--\n" % (message % messagekw,)
- message += _(u"This is an automated message sent from %s.") % Site.objects.get_current()
- mail.send_mail(
- subject,
- message,
- settings.DEFAULT_FROM_EMAIL,
- recipients
- )
- translation.activate(prev_lang)
+ with translation.override(self.language_set.all()[0].locale):
+ message = u"%s\n--\n" % (message % messagekw,)
+ message += _(u"This is an automated message sent from %s.") % Site.objects.get_current()
+ mail.send_mail(
+ force_text(subject),
+ message,
+ settings.DEFAULT_FROM_EMAIL,
+ recipients
+ )
+
class FakeTeam(object):
"""
diff --git a/teams/tests.py b/teams/tests.py
index ac5e4bf..79fbed7 100644
--- a/teams/tests.py
+++ b/teams/tests.py
@@ -1,10 +1,13 @@
# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
from datetime import datetime, timedelta
-from django.test import TestCase
from django.core.urlresolvers import reverse
from django.core import mail
+from django.test import TestCase
+from django.utils.translation import ugettext_lazy
+
from people.models import Person
from teams.models import Team, Role
from languages.models import Language
@@ -39,11 +42,13 @@ class TeamsAndRolesTests(TestCase):
self.l = Language.objects.create(name='French', locale='fr', team=self.t)
- _ = Role.objects.create(team=self.t, person=self.pt)
- _ = Role.objects.create(team=self.t2, person=self.pt, role='reviewer')
- _ = Role.objects.create(team=self.t, person=self.pr, role='reviewer')
- _ = Role.objects.create(team=self.t, person=self.pc, role='committer')
- _ = Role.objects.create(team=self.t, person=self.pcoo, role='coordinator')
+ Role.objects.bulk_create([
+ Role(team=self.t, person=self.pt),
+ Role(team=self.t2, person=self.pt, role='reviewer'),
+ Role(team=self.t, person=self.pr, role='reviewer'),
+ Role(team=self.t, person=self.pc, role='committer'),
+ Role(team=self.t, person=self.pcoo, role='coordinator'),
+ ])
class TeamTest(TeamsAndRolesTests):
def setUp(self):
@@ -143,7 +148,7 @@ class TeamTest(TeamsAndRolesTests):
self.assertEqual(len(mail.outbox), 1)
self.assertEqual(mail.outbox[0].recipients()[0], self.pcoo.email)
# Mail should be sent in the target team's language (i.e. French here)
- self.assertTrue("rejoindre" in mail.outbox[0].body)
+ self.assertIn("rejoindre", mail.outbox[0].body)
def test_edit_team(self):
""" Test team edit form """
@@ -162,6 +167,16 @@ class TeamTest(TeamsAndRolesTests):
team = Team.objects.get(name='fr')
self.assertEqual(team.webpage_url, "http://www.gnomefr.org/")
+ def test_send_mail_to_coordinator(self):
+ self.t.send_mail_to_coordinator(subject="foo", message="bar")
+ self.assertEqual(len(mail.outbox), 1)
+ self.assertEqual(mail.outbox[0].subject, "foo")
+ # the message is sent in the language of the team
+ self.t.send_mail_to_coordinator(subject=ugettext_lazy("About Damned Lies"), message="...")
+ self.assertEqual(len(mail.outbox), 2)
+ self.assertEqual(mail.outbox[1].subject, "À propos de Damned Lies")
+
+
class JSONTeamsTest(TeamsAndRolesTests):
def setUp(self):
super(JSONTeamsTest, self).setUp()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]