Author: mtredinnick
Date: 2007-10-20 05:12:59 -0500 (Sat, 20 Oct 2007)
New Revision: 6558
Modified:
django/trunk/django/contrib/sessions/backends/base.py
django/trunk/django/contrib/sessions/tests.py
Log:
Fixed #4729 -- Restored functionality to the Session class so that popping a
value marks it as modified. This was accidentally lost in the changes in
[6333]. Thanks, __hawkeye__.
Modified: django/trunk/django/contrib/sessions/backends/base.py
===================================================================
--- django/trunk/django/contrib/sessions/backends/base.py 2007-10-20
09:27:12 UTC (rev 6557)
+++ django/trunk/django/contrib/sessions/backends/base.py 2007-10-20
10:12:59 UTC (rev 6558)
@@ -48,6 +48,7 @@
return self._session.get(key, default)
def pop(self, key, *args):
+ self.modified = self.modified or key in self._session
return self._session.pop(key, *args)
def set_test_cookie(self):
Modified: django/trunk/django/contrib/sessions/tests.py
===================================================================
--- django/trunk/django/contrib/sessions/tests.py 2007-10-20 09:27:12 UTC
(rev 6557)
+++ django/trunk/django/contrib/sessions/tests.py 2007-10-20 10:12:59 UTC
(rev 6558)
@@ -3,6 +3,7 @@
>>> from django.contrib.sessions.backends.db import SessionStore as
>>> DatabaseSession
>>> from django.contrib.sessions.backends.cache import SessionStore as
>>> CacheSession
>>> from django.contrib.sessions.backends.file import SessionStore as
>>> FileSession
+>>> from django.contrib.sessions.backends.base import SessionBase
>>> db_session = DatabaseSession()
>>> db_session.modified
@@ -52,6 +53,28 @@
>>> cache_session.delete(cache_session.session_key)
>>> cache_session.exists(cache_session.session_key)
False
+
+>>> s = SessionBase()
+>>> s._session['some key'] = 'exists' # Pre-populate the session with some data
+>>> s.accessed = False # Reset to pretend this wasn't accessed previously
+
+>>> s.accessed, s.modified
+(False, False)
+
+>>> s.pop('non existant key', 'does not exist')
+'does not exist'
+>>> s.accessed, s.modified
+(True, False)
+
+>>> s.accessed = False # Reset the accessed flag
+
+>>> s.pop('some key')
+'exists'
+>>> s.accessed, s.modified
+(True, True)
+
+>>> s.pop('some key', 'does not exist')
+'does not exist'
"""
if __name__ == '__main__':
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---