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.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10228 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
fea6c73538
commit
13ea4a9133
|
@ -431,12 +431,14 @@ 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_module(settings.SESSION_ENGINE).SessionStore()
|
session = import_module(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()
|
||||||
|
|
||||||
def _handle_redirects(self, response):
|
def _handle_redirects(self, response):
|
||||||
|
|
|
@ -423,4 +423,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')
|
||||||
|
|
||||||
|
|
|
@ -505,6 +505,14 @@ 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()
|
||||||
|
|
||||||
class RequestMethodTests(TestCase):
|
class RequestMethodTests(TestCase):
|
||||||
def test_get(self):
|
def test_get(self):
|
||||||
"Request a view via request method GET"
|
"Request a view via request method GET"
|
||||||
|
|
Loading…
Reference in New Issue