summaryrefslogtreecommitdiff
path: root/tests/test_client_regress/session.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_client_regress/session.py')
-rw-r--r--tests/test_client_regress/session.py30
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 {}