Django

Code

Changeset 7687

Show
Ignore:
Timestamp:
06/18/08 07:07:46 (5 months ago)
Author:
russellm
Message:

Fixed #7429 -- Modified the Session base class a little more dictionary-like by adding update(), has_key(), values(), and iterator access methods. Thanks to Jeremy Dunck for the suggestion and patch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/sessions/backends/base.py

    r7586 r7687  
    8787        except: 
    8888            return {} 
     89 
     90    def update(self, dict_): 
     91        self._session.update(dict_) 
     92        self.modified = True 
     93 
     94    def has_key(self, key): 
     95        return self._session.has_key(key) 
     96 
     97    def values(self): 
     98        return self._session.values() 
     99 
     100    def iterkeys(self): 
     101        return self._session.iterkeys() 
     102 
     103    def itervalues(self): 
     104        return self._session.itervalues() 
     105 
     106    def iteritems(self): 
     107        return self._session.iteritems() 
    89108 
    90109    def _get_new_session_key(self): 
  • django/trunk/django/contrib/sessions/tests.py

    r7586 r7687  
    9090'does not exist' 
    9191 
     92 
     93>>> s.get('update key', None) 
     94 
     95# test .update() 
     96>>> s.modified = s.accessed = False   # Reset to pretend this wasn't accessed previously 
     97>>> s.update({'update key':1}) 
     98>>> s.accessed, s.modified 
     99(True, True) 
     100>>> s.get('update key', None) 
     1011 
     102 
     103# test .has_key() 
     104>>> s.modified = s.accessed = False   # Reset to pretend this wasn't accessed previously 
     105>>> s.has_key('update key') 
     106True 
     107>>> s.accessed, s.modified 
     108(True, False) 
     109 
     110# test .values() 
     111>>> s = SessionBase() 
     112>>> s.values() 
     113[] 
     114>>> s.accessed 
     115True 
     116>>> s['x'] = 1 
     117>>> s.values() 
     118[1] 
     119 
     120# test .iterkeys() 
     121>>> s.accessed = False 
     122>>> i = s.iterkeys() 
     123>>> hasattr(i,'__iter__') 
     124True 
     125>>> s.accessed 
     126True 
     127>>> list(i) 
     128['x'] 
     129 
     130# test .itervalues() 
     131>>> s.accessed = False 
     132>>> i = s.itervalues() 
     133>>> hasattr(i,'__iter__') 
     134True 
     135>>> s.accessed 
     136True 
     137>>> list(i) 
     138[1] 
     139 
     140# test .iteritems() 
     141>>> s.accessed = False 
     142>>> i = s.iteritems() 
     143>>> hasattr(i,'__iter__') 
     144True 
     145>>> s.accessed 
     146True 
     147>>> list(i) 
     148[('x', 1)] 
     149 
     150  
     151 
    92152######################### 
    93153# Custom session expiry #