Commit be88b062 authored by Preston Timmons's avatar Preston Timmons Committed by Tim Graham
Browse files

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.
parent 4dc4d12e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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)

+8 −0
Original line number Diff line number Diff line
@@ -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()