1
0
mirror of https://github.com/django/django.git synced 2025-07-19 00:59:17 +00:00

[1.0.X]: Fixed #9978 -- Fixed a KeyError exception that was being raised when using the logout method on the test client on an unauthenticated user, based on patch from ericholscher.

Backport of r10228 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10236 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Gary Wilson Jr 2009-03-30 23:20:10 +00:00
parent 22ac97b17c
commit 9bbf94112f
3 changed files with 17 additions and 9 deletions

View File

@ -334,10 +334,12 @@ class Client(object):
def logout(self): def logout(self):
""" """
Removes the authenticated user's cookies. Removes the authenticated user's cookies and session object.
Causes the authenticated user to be logged out. Causes the authenticated user to be logged out.
""" """
session = __import__(settings.SESSION_ENGINE, {}, {}, ['']).SessionStore() session = __import__(settings.SESSION_ENGINE, {}, {}, ['']).SessionStore()
session.delete(session_key=self.cookies[settings.SESSION_COOKIE_NAME].value) session_cookie = self.cookies.get(settings.SESSION_COOKIE_NAME)
if session_cookie:
session.delete(session_key=session_cookie.value)
self.cookies = SimpleCookie() self.cookies = SimpleCookie()

View File

@ -411,4 +411,3 @@ class ClientTest(TestCase):
self.assertEqual(mail.outbox[1].from_email, 'from@example.com') self.assertEqual(mail.outbox[1].from_email, 'from@example.com')
self.assertEqual(mail.outbox[1].to[0], 'second@example.com') self.assertEqual(mail.outbox[1].to[0], 'second@example.com')
self.assertEqual(mail.outbox[1].to[1], 'third@example.com') self.assertEqual(mail.outbox[1].to[1], 'third@example.com')

View File

@ -383,3 +383,10 @@ class SessionTests(TestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, 'YES') self.assertEqual(response.content, 'YES')
def test_logout(self):
"""Logout should work whether the user is logged in or not (#9978)."""
self.client.logout()
login = self.client.login(username='testclient',password='password')
self.failUnless(login, 'Could not log in')
self.client.logout()
self.client.logout()