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
-~----------~----~----~----~------~----~------~--~---

Reply via email to