diff options
Diffstat (limited to 'parts/django/tests/regressiontests/test_client_regress/session.py')
-rw-r--r-- | parts/django/tests/regressiontests/test_client_regress/session.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/parts/django/tests/regressiontests/test_client_regress/session.py b/parts/django/tests/regressiontests/test_client_regress/session.py new file mode 100644 index 0000000..74ae3b6 --- /dev/null +++ b/parts/django/tests/regressiontests/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 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 {}
\ No newline at end of file |