summaryrefslogtreecommitdiff
path: root/tests/auth_tests
diff options
context:
space:
mode:
authorZachLiuGIS <zachliugis@gmail.com>2017-09-01 09:07:03 -0400
committerTim Graham <timograham@gmail.com>2017-09-03 12:06:44 -0400
commit2dacc2ccd9593678f19b61ecfe1bc6ee826c2a88 (patch)
tree3eda5433a64950d5dda01de46cc6b7844c5c8dd7 /tests/auth_tests
parentfe0184b4121dd68b827575fc2116a65703c5be08 (diff)
Fixed #28550 -- Restored contrib.auth's login() and logout() views' respect of positional arguments.
Regression in 78963495d0caadb77eb97ccf319ef0ba3b204fb5. Forwardport of f8e0557b01ebbb11478cfb012c4cafc67f1213c1 from stable/1.11.x
Diffstat (limited to 'tests/auth_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 be3b990494..b53389a161 100644
--- a/tests/auth_tests/test_deprecated_views.py
+++ b/tests/auth_tests/test_deprecated_views.py
@@ -9,9 +9,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
@@ -440,3 +441,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')