summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorZach Liu <zachliugis@gmail.com>2017-09-03 12:05:18 -0400
committerTim Graham <timograham@gmail.com>2017-09-03 12:05:18 -0400
commitf8e0557b01ebbb11478cfb012c4cafc67f1213c1 (patch)
tree0676bf14dc3a365d29135d1230a7f9fbf8e4e420 /tests
parentf9db06cf0812ee017b34bc786e1bf96e40f2327b (diff)
[1.11.x] Fixed #28550 -- Restored contrib.auth's login() and logout() views' respect of positional arguments.
Regression in 78963495d0caadb77eb97ccf319ef0ba3b204fb5.
Diffstat (limited to 'tests')
-rw-r--r--tests/auth_tests/test_deprecated_views.py48
1 files changed, 47 insertions, 1 deletions
diff --git a/tests/auth_tests/test_deprecated_views.py b/tests/auth_tests/test_deprecated_views.py
index 542833686a..f8d5ede5ca 100644
--- a/tests/auth_tests/test_deprecated_views.py
+++ b/tests/auth_tests/test_deprecated_views.py
@@ -11,9 +11,10 @@ from django.contrib.auth.forms import (
AuthenticationForm, PasswordChangeForm, SetPasswordForm,
)
from django.contrib.auth.models import User
+from django.contrib.auth.views import login, logout
from django.core import mail
from django.http import QueryDict
-from django.test import TestCase, override_settings
+from django.test import RequestFactory, TestCase, override_settings
from django.test.utils import ignore_warnings, patch_logger
from django.utils.deprecation import RemovedInDjango21Warning
from django.utils.encoding import force_text
@@ -444,3 +445,48 @@ class SessionAuthenticationTests(AuthViewsTestCase):
})
# if the hash isn't updated, retrieving the redirection page will fail.
self.assertRedirects(response, '/password_change/done/')
+
+
+@ignore_warnings(category=RemovedInDjango21Warning)
+class TestLogin(TestCase):
+ def setUp(self):
+ self.factory = RequestFactory()
+ self.request = self.factory.get('/')
+
+ def test_template_name(self):
+ response = login(self.request, 'template.html')
+ self.assertEqual(response.template_name, ['template.html'])
+
+ def test_form_class(self):
+ class NewForm(AuthenticationForm):
+ def confirm_login_allowed(self, user):
+ pass
+ response = login(self.request, 'template.html', None, NewForm)
+ self.assertEqual(response.context_data['form'].__class__.__name__, 'NewForm')
+
+ def test_extra_context(self):
+ extra_context = {'fake_context': 'fake_context'}
+ response = login(self.request, 'template.html', None, AuthenticationForm, extra_context)
+ self.assertEqual(response.resolve_context('fake_context'), 'fake_context')
+
+
+@ignore_warnings(category=RemovedInDjango21Warning)
+class TestLogout(AuthViewsTestCase):
+ def setUp(self):
+ self.login()
+ self.factory = RequestFactory()
+ self.request = self.factory.post('/')
+ self.request.session = self.client.session
+
+ def test_template_name(self):
+ response = logout(self.request, None, 'template.html')
+ self.assertEqual(response.template_name, ['template.html'])
+
+ def test_next_page(self):
+ response = logout(self.request, 'www.next_page.com')
+ self.assertEqual(response.url, 'www.next_page.com')
+
+ def test_extra_context(self):
+ extra_context = {'fake_context': 'fake_context'}
+ response = logout(self.request, None, 'template.html', None, extra_context)
+ self.assertEqual(response.resolve_context('fake_context'), 'fake_context')