mirror of
https://github.com/django/django.git
synced 2025-05-16 11:56:28 +00:00
Fixed #26882 -- Added tests for auth.views.logout_then_login().
This commit is contained in:
parent
caa006f327
commit
dde6288fbe
@ -185,7 +185,7 @@ def logout_then_login(request, login_url=None, extra_context=None):
|
|||||||
if not login_url:
|
if not login_url:
|
||||||
login_url = settings.LOGIN_URL
|
login_url = settings.LOGIN_URL
|
||||||
login_url = resolve_url(login_url)
|
login_url = resolve_url(login_url)
|
||||||
return logout(request, login_url, extra_context=extra_context)
|
return LogoutView.as_view(next_page=login_url)(request)
|
||||||
|
|
||||||
|
|
||||||
def redirect_to_login(next, login_url=None,
|
def redirect_to_login(next, login_url=None,
|
||||||
|
@ -15,7 +15,9 @@ from django.contrib.auth.forms import (
|
|||||||
AuthenticationForm, PasswordChangeForm, SetPasswordForm,
|
AuthenticationForm, PasswordChangeForm, SetPasswordForm,
|
||||||
)
|
)
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.auth.views import LoginView, redirect_to_login
|
from django.contrib.auth.views import (
|
||||||
|
LoginView, logout_then_login, redirect_to_login,
|
||||||
|
)
|
||||||
from django.contrib.sessions.middleware import SessionMiddleware
|
from django.contrib.sessions.middleware import SessionMiddleware
|
||||||
from django.contrib.sites.requests import RequestSite
|
from django.contrib.sites.requests import RequestSite
|
||||||
from django.core import mail
|
from django.core import mail
|
||||||
@ -707,6 +709,32 @@ class RedirectToLoginTests(AuthViewsTestCase):
|
|||||||
self.assertEqual(expected, login_redirect_response.url)
|
self.assertEqual(expected, login_redirect_response.url)
|
||||||
|
|
||||||
|
|
||||||
|
class LogoutThenLoginTests(AuthViewsTestCase):
|
||||||
|
"""Tests for the logout_then_login view"""
|
||||||
|
|
||||||
|
def confirm_logged_out(self):
|
||||||
|
self.assertNotIn(SESSION_KEY, self.client.session)
|
||||||
|
|
||||||
|
@override_settings(LOGIN_URL='/login/')
|
||||||
|
def test_default_logout_then_login(self):
|
||||||
|
self.login()
|
||||||
|
req = HttpRequest()
|
||||||
|
req.method = 'GET'
|
||||||
|
req.session = self.client.session
|
||||||
|
response = logout_then_login(req)
|
||||||
|
self.confirm_logged_out()
|
||||||
|
self.assertRedirects(response, '/login/', fetch_redirect_response=False)
|
||||||
|
|
||||||
|
def test_logout_then_login_with_custom_login(self):
|
||||||
|
self.login()
|
||||||
|
req = HttpRequest()
|
||||||
|
req.method = 'GET'
|
||||||
|
req.session = self.client.session
|
||||||
|
response = logout_then_login(req, login_url='/custom/')
|
||||||
|
self.confirm_logged_out()
|
||||||
|
self.assertRedirects(response, '/custom/', fetch_redirect_response=False)
|
||||||
|
|
||||||
|
|
||||||
class LoginRedirectAuthenticatedUser(AuthViewsTestCase):
|
class LoginRedirectAuthenticatedUser(AuthViewsTestCase):
|
||||||
dont_redirect_url = '/login/redirect_authenticated_user_default/'
|
dont_redirect_url = '/login/redirect_authenticated_user_default/'
|
||||||
do_redirect_url = '/login/redirect_authenticated_user/'
|
do_redirect_url = '/login/redirect_authenticated_user/'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user