diff options
| author | ZachLiuGIS <zachliugis@gmail.com> | 2017-09-01 09:07:03 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-09-03 12:06:44 -0400 |
| commit | 2dacc2ccd9593678f19b61ecfe1bc6ee826c2a88 (patch) | |
| tree | 3eda5433a64950d5dda01de46cc6b7844c5c8dd7 /tests/auth_tests | |
| parent | fe0184b4121dd68b827575fc2116a65703c5be08 (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.py | 48 |
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') |
