Ñò
DøQMc           @   s¯  d  d k  Z  d  d k l Z l Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k l	 Z
 d  d k l	 Z d  d k l	 Z d  d k l	 Z d  d k l Z d  d k l Z d  d k l Z l Z d  d k l Z d  d	 k l Z l Z d  d
 k l Z d  d k l  Z  d e! f d „  ƒ  YZ" d e" e f d „  ƒ  YZ# d e" e f d „  ƒ  YZ$ d e" e i f d „  ƒ  YZ% d e" e i f d „  ƒ  YZ& d e i f d „  ƒ  YZ' d S(   iÿÿÿÿN(   t   datetimet	   timedelta(   t   settings(   t   SessionStore(   t   Session(   t   SessionMiddleware(   t   ImproperlyConfiguredt   SuspiciousOperation(   t   HttpResponse(   t   TestCaset   RequestFactory(   t   unittest(   t   md5_constructort   SessionTestsMixinc           B   s
  e  Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   |  i  ƒ  |  _ d  S(   N(   t   backendt   session(   t   self(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   setUp   s    c         C   s   |  i  i ƒ  d  S(   N(   R   t   delete(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   tearDown   s    c         C   s*   |  i  |  i i ƒ |  i  |  i i ƒ d  S(   N(   t   assertFalseR   t   modifiedt   accessed(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_new_session%   s    c         C   s    |  i  |  i i d ƒ d  ƒ d  S(   Nt   cat(   t   assertEqualR   t   gett   None(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_get_empty)   s    c         C   s@   d |  i  d <|  i |  i  i ƒ |  i |  i  i d ƒ d ƒ d  S(   Nt   dogR   (   R   t
   assertTrueR   R   t   pop(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt
   test_store,   s    c         C   s   d |  i  d <t |  _ t |  _ |  i |  i  i d ƒ d ƒ |  i |  i  i ƒ |  i |  i  i ƒ |  i |  i  i d ƒ d  ƒ d  S(   Nt   existss   some key(	   R   t   FalseR   R   R   R   R   R   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_pop1   s    		c         C   sI   |  i  |  i i d d ƒ d ƒ |  i |  i i ƒ |  i |  i i ƒ d  S(   Ns   some keys   does not exist(   R   R   R   R   R   R   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_pop_default<   s    c         C   sh   |  i  |  i i d d ƒ d ƒ |  i  |  i i d d ƒ d ƒ |  i |  i i ƒ |  i |  i i ƒ d  S(   Nt   foot   bart   baz(   R   R   t
   setdefaultR   R   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_setdefaultB   s    c         C   s`   |  i  i h d d 6ƒ |  i |  i  i ƒ |  i |  i  i ƒ |  i |  i  i d d  ƒ d ƒ d  S(   Ni   s
   update key(   R   t   updateR   R   R   R   R   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_updateH   s    c         C   sh   d |  i  d <t |  i  _ t |  i  _ |  i |  i  i d ƒ ƒ |  i |  i  i ƒ |  i |  i  i ƒ d  S(   Ni   s   some key(   R   R"   R   R   R   t   has_keyR   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_has_keyN   s    c         C   sY   |  i  |  i i ƒ  g  ƒ |  i |  i i ƒ d |  i d <|  i  |  i i ƒ  d g ƒ d  S(   Ni   s   some key(   R   R   t   valuesR   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_valuesV   s    c         C   s   d |  i  d <t |  i  _ t |  i  _ |  i  i ƒ  } |  i t | d ƒ ƒ |  i |  i  i ƒ |  i |  i  i ƒ |  i t	 | ƒ d g ƒ d  S(   Ni   t   xt   __iter__(
   R   R"   R   R   t   iterkeysR   t   hasattrR   R   t   list(   R   t   i(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_iterkeys\   s    c         C   s   d |  i  d <t |  i  _ t |  i  _ |  i  i ƒ  } |  i t | d ƒ ƒ |  i |  i  i ƒ |  i |  i  i ƒ |  i t	 | ƒ d g ƒ d  S(   Ni   R0   R1   (
   R   R"   R   R   t
   itervaluesR   R3   R   R   R4   (   R   R5   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_itervaluesf   s    c         C   s   d |  i  d <t |  i  _ t |  i  _ |  i  i ƒ  } |  i t | d ƒ ƒ |  i |  i  i ƒ |  i |  i  i ƒ |  i t	 | ƒ d g ƒ d  S(   Ni   R0   R1   (   R0   i   (
   R   R"   R   R   t	   iteritemsR   R3   R   R   R4   (   R   R5   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_iteritemsp   s    c         C   s‘   d |  i  d <t |  i  _ t |  i  _ |  i |  i  i ƒ  d g ƒ |  i  i ƒ  |  i |  i  i ƒ  g  ƒ |  i |  i  i ƒ |  i |  i  i ƒ d  S(   Ni   R0   (   R0   i   (   R   R"   R   R   R   t   itemst   clearR   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt
   test_clearz   s    c         C   s0   |  i  i ƒ  |  i |  i  i |  i  i ƒ ƒ d  S(   N(   R   t   saveR   R!   t   session_key(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt	   test_save„   s    c         C   s9   |  i  i |  i  i ƒ |  i |  i  i |  i  i ƒ ƒ d  S(   N(   R   R   R?   R   R!   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_deleteˆ   s    c         C   sŒ   d |  i  d <|  i  i ƒ  |  i  i } |  i  i ƒ  |  i |  i  i | ƒ ƒ |  i |  i  i | ƒ |  i |  i  i ƒ |  i |  i  i	 ƒ d  S(   NR&   R%   (
   R   R>   R?   t   flushR   R!   t   assertNotEqualR   R   R   (   R   t   prev_key(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt
   test_flushŒ   s    c         C   s‚   d \ |  i  d <|  i  d <|  i  i ƒ  |  i  i } |  i  i ƒ  } |  i  i ƒ  |  i |  i  i | ƒ |  i |  i  i ƒ  | ƒ d  S(   Nt   ct   dt   at   b(   RF   RG   (   R   R>   R?   R;   t	   cycle_keyRC   R   (   R   RD   t	   prev_data(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt
   test_cycle–   s    c         C   sh   zS |  i  d ƒ } | i ƒ  |  i | i d ƒ |  i | i d ƒ d  ƒ | i ƒ  Wd  | i d ƒ Xd  S(   Nt   1R   (   R   R>   RC   R?   R   R   R   R   (   R   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_invalid_keyŸ   s    
c         C   sL   |  i  |  i i ƒ  t i ƒ |  i i d ƒ |  i  |  i i ƒ  t i ƒ d  S(   Ni    (   R   R   t   get_expiry_ageR   t   SESSION_COOKIE_AGEt
   set_expiry(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_default_expiry®   s    c         C   se   |  i  i d ƒ |  i  i ƒ  t i ƒ  } |  i | i d j ƒ |  i  i ƒ  } |  i | d j ƒ d  S(   Ni
   i	   (   i	   i
   (   i	   i
   (   R   RQ   t   get_expiry_dateR    t   nowR   t   secondsRO   (   R   t   deltat   age(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_custom_expiry_seconds·   s
    c         C   sn   |  i  i t d d ƒ ƒ |  i  i ƒ  t i ƒ  } |  i | i d j ƒ |  i  i ƒ  } |  i | d j ƒ d  S(   NRU   i
   i	   (   i	   i
   (   i	   i
   (	   R   RQ   R   RS   R    RT   R   RU   RO   (   R   RV   RW   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_custom_expiry_timedeltaÀ   s
    c         C   sx   |  i  i t i ƒ  t d d ƒ ƒ |  i  i ƒ  t i ƒ  } |  i | i d j ƒ |  i  i ƒ  } |  i | d j ƒ d  S(   NRU   i
   i	   (   i	   i
   (   i	   i
   (	   R   RQ   R    RT   R   RS   R   RU   RO   (   R   RV   RW   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_custom_expiry_datetimeÉ   s
    #c         C   sP   |  i  i d  ƒ |  i  i d ƒ |  i  i d  ƒ |  i |  i  i ƒ  t i ƒ d  S(   Ni
   (   R   RQ   R   R   RO   R   RP   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_custom_expiry_resetÒ   s    c      	   C   s%  zyt  i } t t  _ |  i i d ƒ |  i |  i i ƒ  ƒ |  i i d ƒ |  i |  i i ƒ  ƒ |  i i d  ƒ |  i |  i i ƒ  ƒ t	 t  _ |  i i d ƒ |  i |  i i ƒ  ƒ |  i i d ƒ |  i |  i i ƒ  ƒ |  i i d  ƒ |  i |  i i ƒ  ƒ Wn
 ‚  n XWd  | t  _ Xd  S(   Ni
   i    (
   R   t   SESSION_EXPIRE_AT_BROWSER_CLOSER"   R   RQ   R   t   get_expire_at_browser_closeR   R   t   True(   R   t    original_expire_at_browser_close(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt    test_get_expire_at_browser_closeØ   s(    			c         C   s?   h d d 6} |  i  i | ƒ } |  i |  i  i | ƒ | ƒ d  S(   Ns   a test values
   a test key(   R   t   encodeR   t   decode(   R   t   datat   encoded(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_decodeù   s    c         C   sB   d „  } h d d 6} | | ƒ } |  i  |  i i | ƒ | ƒ d  S(   Nc         S   s?   t  i |  t  i ƒ } t | t i ƒ i ƒ  } t i | | ƒ S(   N(	   t   picklet   dumpst   HIGHEST_PROTOCOLR   R   t
   SECRET_KEYt	   hexdigestt   base64t   encodestring(   t   session_dictt   pickledt   pickled_md5(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyRa     s    s   a test values
   a test key(   R   R   Rb   (   R   Ra   Rc   Rd   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_decode_django12ÿ   s    	N(    t   __name__t
   __module__R   R   R   R   R   R   R    R#   R$   R)   R+   R-   R/   R6   R8   R:   R=   R@   RA   RE   RL   RN   RR   RX   RY   RZ   R[   R`   Re   Rp   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR      s:   												
	
	
	
			
													!	t   DatabaseSessionTestsc           B   s    e  Z e Z d  „  Z d „  Z RS(   c         C   sV   d |  i  d <|  i  i ƒ  t i i d |  i  i ƒ } |  i | i ƒ  h d d 6ƒ d S(   sc   
        Test we can use Session.get_decoded to retrieve data stored
        in normal way
        i   R0   R?   N(   R   R>   R   t   objectsR   R?   R   t   get_decoded(   R   t   s(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_session_get_decoded  s    c         C   s|   d |  i  d <|  i  i ƒ  t i i d |  i  i ƒ } t i i | i h d d 6| i ƒ |  i  ` |  i |  i  d d ƒ d S(   s1   
        Test SessionManager.save method
        i   t   yR?   i   N(	   R   R>   R   Rt   R   R?   t   expire_datet   _session_cacheR   (   R   Rv   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_sessionmanager_save  s    #	(   Rq   Rr   t   DatabaseSessionR   Rw   R{   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyRs     s   	t   CacheDBSessionTestsc           B   s   e  Z e Z RS(    (   Rq   Rr   t   CacheDBSessionR   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR}   ,  s   t   FileSessionTestsc           B   s;   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s9   t  t |  ƒ i ƒ  t i |  _ t i ƒ  |  _ t _ d  S(   N(	   t   superR   R   R   t   SESSION_FILE_PATHt   original_session_file_patht   tempfilet   mkdtempt   temp_session_store(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   5  s    c         C   s3   |  i  t _ t i |  i ƒ t t |  ƒ i ƒ  d  S(   N(	   R‚   R   R   t   shutilt   rmtreeR…   R€   R   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   ;  s    c         C   s    d t  _ |  i t |  i ƒ d  S(   Ns3   /if/this/directory/exists/you/have/a/weird/computer(   R   R   t   assertRaisesR   R   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_configuration_check@  s    	c         C   s    |  i  t |  i d ƒ i ƒ d  S(   Ns   a\b\c(   Rˆ   R   R   t   load(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_invalid_key_backslashE  s    	c         C   s    |  i  t |  i d ƒ i ƒ d  S(   Ns   a/b/c(   Rˆ   R   R   RŠ   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_invalid_key_forwardslashJ  s    	(	   Rq   Rr   t   FileSessionR   R   R   R‰   R‹   RŒ   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   1  s   				t   CacheSessionTestsc           B   s   e  Z e Z RS(    (   Rq   Rr   t   CacheSessionR   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyRŽ   P  s   t   SessionMiddlewareTestsc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  i |  _ t  i |  _ d  S(   N(   R   t   SESSION_COOKIE_SECUREt   old_SESSION_COOKIE_SECUREt   SESSION_COOKIE_HTTPONLYt   old_SESSION_COOKIE_HTTPONLY(   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   V  s    c         C   s   |  i  t _ |  i t _ d  S(   N(   R’   R   R‘   R”   R“   (   R   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   Z  s    c         C   s{   t  t _ t ƒ  i d ƒ } t d ƒ } t ƒ  } | i | ƒ d | i d <| i	 | | ƒ } |  i
 | i t i d ƒ d  S(   Nt   /s   Session testt   worldt   hellot   secure(   R^   R   R‘   R
   R   R   R   t   process_requestR   t   process_responseR   t   cookiest   SESSION_COOKIE_NAME(   R   t   requestt   responset
   middleware(    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_secure_session_cookie^  s    		c         C   s{   t  t _ t ƒ  i d ƒ } t d ƒ } t ƒ  } | i | ƒ d | i d <| i	 | | ƒ } |  i
 | i t i d ƒ d  S(   NR•   s   Session testR–   R—   t   httponly(   R^   R   R“   R
   R   R   R   R™   R   Rš   R   R›   Rœ   (   R   R   Rž   RŸ   (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   test_httponly_session_cookiem  s    		(   Rq   Rr   R   R   R    R¢   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyR   U  s   			((   Rk   R    R   Rf   R†   Rƒ   t   django.confR   t#   django.contrib.sessions.backends.dbR   R|   t&   django.contrib.sessions.backends.cacheR   t*   django.contrib.sessions.backends.cached_dbR~   t%   django.contrib.sessions.backends.fileR   t   django.contrib.sessions.modelsR   t"   django.contrib.sessions.middlewareR   t   django.core.exceptionsR   R   t   django.httpR   t   django.testR	   R
   t   django.utilsR   t   django.utils.hashcompatR   t   objectR   Rs   R}   R   RŽ   R   (    (    (    sG   /usr/local/lib/python2.6/dist-packages/django/contrib/sessions/tests.pyt   <module>   s,   ÷ 