summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSusanTan <onceuponatimeforever@gmail.com>2013-08-10 01:13:41 -0700
committerTim Graham <timograham@gmail.com>2013-08-14 07:46:11 -0400
commit71c491972eecae8783cf46e69fac7e5f9f83fc59 (patch)
tree25ef048d6b7a3134e6f480dc2484df5b5a052deb /django
parent4eeb8ec147022d3a7360d9fa78d3cd1c76accfb1 (diff)
Fixed #11400 -- Passed kwargs from AbstractUser.email_user() to send_mail()
Thanks Jug_ for suggestion, john_scott for the initial patch, and Tim Graham for code review.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/auth/models.py4
-rw-r--r--django/contrib/auth/tests/test_models.py26
2 files changed, 27 insertions, 3 deletions
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py
index cf3d37e5c3..cf1ca8ca1f 100644
--- a/django/contrib/auth/models.py
+++ b/django/contrib/auth/models.py
@@ -400,11 +400,11 @@ class AbstractUser(AbstractBaseUser, PermissionsMixin):
"Returns the short name for the user."
return self.first_name
- def email_user(self, subject, message, from_email=None):
+ def email_user(self, subject, message, from_email=None, **kwargs):
"""
Sends an email to this User.
"""
- send_mail(subject, message, from_email, [self.email])
+ send_mail(subject, message, from_email, [self.email], **kwargs)
class User(AbstractUser):
diff --git a/django/contrib/auth/tests/test_models.py b/django/contrib/auth/tests/test_models.py
index fa20775a8d..1373a3c1c1 100644
--- a/django/contrib/auth/tests/test_models.py
+++ b/django/contrib/auth/tests/test_models.py
@@ -1,6 +1,7 @@
from django.contrib.auth import get_user_model
-from django.contrib.auth.models import Group, User, UserManager
+from django.contrib.auth.models import AbstractUser, Group, User, UserManager
from django.contrib.auth.tests.utils import skipIfCustomUser
+from django.core import mail
from django.db.models.signals import post_save
from django.test import TestCase
from django.test.utils import override_settings
@@ -73,6 +74,29 @@ class UserManagerTestCase(TestCase):
User.objects.create_user, username='')
+class AbstractUserTestCase(TestCase):
+ def test_email_user(self):
+ # valid send_mail parameters
+ kwargs = {
+ "fail_silently": False,
+ "auth_user": None,
+ "auth_password": None,
+ "connection": None,
+ "html_message": None,
+ }
+ abstract_user = AbstractUser(email='foo@bar.com')
+ abstract_user.email_user(subject="Subject here",
+ message="This is a message", from_email="from@domain.com", **kwargs)
+ # Test that one message has been sent.
+ self.assertEqual(len(mail.outbox), 1)
+ # Verify that test email contains the correct attributes:
+ message = mail.outbox[0]
+ self.assertEqual(message.subject, "Subject here")
+ self.assertEqual(message.body, "This is a message")
+ self.assertEqual(message.from_email, "from@domain.com")
+ self.assertEqual(message.to, [abstract_user.email])
+
+
class IsActiveTestCase(TestCase):
"""
Tests the behavior of the guaranteed is_active attribute