mirror of
https://github.com/django/django.git
synced 2025-11-01 12:25:37 +00:00
Fixed #13152 -- Ensure the test client saves the session before writing the session key to the cookie, in case the session engine changes the session key.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12806 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
003fe52225
commit
f081059b45
3 changed files with 54 additions and 3 deletions
30
tests/regressiontests/test_client_regress/session.py
Normal file
30
tests/regressiontests/test_client_regress/session.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
from django.contrib.sessions.backends.base import SessionBase
|
||||
|
||||
class SessionStore(SessionBase):
|
||||
"""
|
||||
A simple cookie-based session storage implemenation.
|
||||
|
||||
The session key is actually the session data, pickled and encoded.
|
||||
This means that saving the session will change the session key.
|
||||
"""
|
||||
def __init__(self, session_key=None):
|
||||
super(SessionStore, self).__init__(session_key)
|
||||
|
||||
def exists(self, session_key):
|
||||
return False
|
||||
|
||||
def create(self):
|
||||
self.session_key = self.encode({})
|
||||
|
||||
def save(self, must_create=False):
|
||||
self.session_key = self.encode(self._session)
|
||||
|
||||
def delete(self, session_key=None):
|
||||
self.session_key = self.encode({})
|
||||
|
||||
def load(self):
|
||||
try:
|
||||
return self.decode(self.session_key)
|
||||
except:
|
||||
self.modified = True
|
||||
return {}
|
||||
Loading…
Add table
Add a link
Reference in a new issue