diff options
Diffstat (limited to 'tests/test_client_regress/session.py')
-rw-r--r-- | tests/test_client_regress/session.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/test_client_regress/session.py b/tests/test_client_regress/session.py new file mode 100644 index 0000000000..665729cf00 --- /dev/null +++ b/tests/test_client_regress/session.py @@ -0,0 +1,30 @@ +from django.contrib.sessions.backends.base import SessionBase + +class SessionStore(SessionBase): + """ + A simple cookie-based session storage implementation. + + 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 {} |