diff --git a/django/test/client.py b/django/test/client.py index b4bdde6931c..6ea811940d5 100644 --- a/django/test/client.py +++ b/django/test/client.py @@ -595,6 +595,7 @@ class Client(RequestFactory): else: request.session = engine.SessionStore() logout(request) + self.cookies = SimpleCookie() def _handle_redirects(self, response, **extra): "Follows any redirects by requesting responses from the server using GET." diff --git a/docs/releases/1.6.1.txt b/docs/releases/1.6.1.txt index 156378f928b..91c6a9e261c 100644 --- a/docs/releases/1.6.1.txt +++ b/docs/releases/1.6.1.txt @@ -37,3 +37,5 @@ Bug fixes multiple times (#21488, #17181). * Fixed a regression that unnecessarily triggered settings configuration when importing ``get_wsgi_application`` (#21486). +* Fixed test client ``logout()`` method when using the cookie-based session + backend (#21448). diff --git a/tests/test_client/tests.py b/tests/test_client/tests.py index 0f3cba7e88d..ccd3b56d2e6 100644 --- a/tests/test_client/tests.py +++ b/tests/test_client/tests.py @@ -356,6 +356,10 @@ class ClientTest(TestCase): response = self.client.get('/test_client/login_protected_view/') self.assertRedirects(response, 'http://testserver/accounts/login/?next=/test_client/login_protected_view/') + @override_settings(SESSION_ENGINE="django.contrib.sessions.backends.signed_cookies") + def test_logout_cookie_sessions(self): + self.test_logout() + def test_view_with_permissions(self): "Request a page that is protected with @permission_required"