Fixed #21357 -- Fixed test client session initialization.

The test client will now create a session when it is first accessed
if no session already exists.
This commit is contained in:
Preston Timmons 2014-05-22 17:45:02 -05:00 committed by Tim Graham
parent 4dc4d12e27
commit be88b062af
2 changed files with 13 additions and 0 deletions

View File

@ -393,6 +393,11 @@ class Client(RequestFactory):
cookie = self.cookies.get(settings.SESSION_COOKIE_NAME, None)
if cookie:
return engine.SessionStore(cookie.value)
else:
s = engine.SessionStore()
s.save()
self.cookies[settings.SESSION_COOKIE_NAME] = s.session_key
return s
return {}
session = property(_session)

View File

@ -1048,6 +1048,14 @@ class SessionTests(TestCase):
self.assertEqual(response.status_code, 200)
self.assertEqual(response.content, b'YES')
def test_session_initiated(self):
session = self.client.session
session['session_var'] = 'foo'
session.save()
response = self.client.get('/check_session/')
self.assertEqual(response.content, b'foo')
def test_logout(self):
"""Logout should work whether the user is logged in or not (#9978)."""
self.client.logout()