1
0
mirror of https://github.com/django/django.git synced 2025-11-07 07:15:35 +00:00

[1.11.x] Fixed #28550 -- Restored contrib.auth's login() and logout() views' respect of positional arguments.

Regression in 78963495d0.
This commit is contained in:
Zach Liu
2017-09-03 12:05:18 -04:00
committed by Tim Graham
parent f9db06cf08
commit f8e0557b01
4 changed files with 72 additions and 5 deletions

View File

@@ -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')