ó
ø¢TQc           @   sh  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z d  d l m
 Z d  d l m
 Z d  d l m
 Z d  d l m
 Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d	 l m Z m Z d  d
 l m  Z  d  d l! m" Z" m# Z# d  d l$ m% Z% d  d l& m' Z' d  d l& m( Z( d  d l& m) Z) d e* f d „  ƒ  YZ+ d e+ e" f d „  ƒ  YZ, e% d e- ƒ d e, f d „  ƒ  Yƒ Z. d e+ e" f d „  ƒ  YZ/ e% d e- ƒ d e/ f d „  ƒ  Yƒ Z0 d e+ e) j" f d „  ƒ  YZ1 d e+ e) j" f d „  ƒ  YZ2 d e) j" f d  „  ƒ  YZ3 d! e+ e" f d" „  ƒ  YZ4 d S(#   iÿÿÿÿ(   t	   timedeltaN(   t   settings(   t   SessionStore(   t   Session(   t   SessionMiddleware(   t	   get_cache(   t
   management(   t   ImproperlyConfiguredt   SuspiciousOperation(   t   HttpResponse(   t   TestCaset   RequestFactory(   t   override_settings(   t   six(   t   timezone(   t   unittestt   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 d „  Z  RS(   c         C   s   |  j  ƒ  |  _ d  S(   N(   t   backendt   session(   t   self(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   setUp"   s    c         C   s   |  j  j ƒ  d  S(   N(   R   t   delete(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   tearDown%   s    c         C   s*   |  j  |  j j ƒ |  j  |  j j ƒ d  S(   N(   t   assertFalseR   t   modifiedt   accessed(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_new_session+   s    c         C   s    |  j  |  j j d ƒ d  ƒ d  S(   Nt   cat(   t   assertEqualR   t   gett   None(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_get_empty/   s    c         C   s@   d |  j  d <|  j |  j  j ƒ |  j |  j  j d ƒ d ƒ d  S(   Nt   dogR   (   R   t
   assertTrueR   R   t   pop(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt
   test_store2   s    c         C   s   d |  j  d <t |  _ t |  _ |  j |  j  j d ƒ d ƒ |  j |  j  j ƒ |  j |  j  j ƒ |  j |  j  j d ƒ d  ƒ d  S(   Nt   existss   some key(	   R   t   FalseR   R   R   R"   R!   R   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_pop7   s    		c         C   sI   |  j  |  j j d d ƒ d ƒ |  j |  j j ƒ |  j |  j j ƒ d  S(   Ns   some keys   does not exist(   R   R   R"   R!   R   R   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_pop_defaultB   s    c         C   sh   |  j  |  j j d d ƒ d ƒ |  j  |  j j d d ƒ d ƒ |  j |  j j ƒ |  j |  j j ƒ d  S(   Nt   foot   bart   baz(   R   R   t
   setdefaultR!   R   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_setdefaultH   s    c         C   s`   |  j  j i d d 6ƒ |  j |  j  j ƒ |  j |  j  j ƒ |  j |  j  j d d  ƒ d ƒ d  S(   Ni   s
   update key(   R   t   updateR!   R   R   R   R   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_updateN   s    c         C   sb   d |  j  d <t |  j  _ t |  j  _ |  j d |  j  ƒ |  j |  j  j ƒ |  j |  j  j ƒ d  S(   Ni   s   some key(   R   R%   R   R   t   assertInR!   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_has_keyT   s    c         C   se   |  j  t |  j j ƒ  ƒ g  ƒ |  j |  j j ƒ d |  j d <|  j  t |  j j ƒ  ƒ d g ƒ d  S(   Ni   s   some key(   R   t   listR   t   valuesR!   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_values\   s    c         C   s   d |  j  d <t |  j  _ t |  j  _ t j |  j  ƒ } |  j t | d ƒ ƒ |  j |  j  j ƒ |  j |  j  j ƒ |  j	 t
 | ƒ d g ƒ d  S(   Ni   t   xt   __iter__(   R   R%   R   R   R   t   iterkeysR!   t   hasattrR   R   R1   (   R   t   i(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_iterkeysb   s    c         C   s   d |  j  d <t |  j  _ t |  j  _ t j |  j  ƒ } |  j t | d ƒ ƒ |  j |  j  j ƒ |  j |  j  j ƒ |  j	 t
 | ƒ d g ƒ d  S(   Ni   R4   R5   (   R   R%   R   R   R   t
   itervaluesR!   R7   R   R   R1   (   R   R8   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_itervaluesl   s    c         C   s   d |  j  d <t |  j  _ t |  j  _ t j |  j  ƒ } |  j t | d ƒ ƒ |  j |  j  j ƒ |  j |  j  j ƒ |  j	 t
 | ƒ d g ƒ d  S(   Ni   R4   R5   (   R4   i   (   R   R%   R   R   R   t	   iteritemsR!   R7   R   R   R1   (   R   R8   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_iteritemsv   s    c         C   s   d |  j  d <t |  j  _ t |  j  _ |  j t |  j  j ƒ  ƒ d g ƒ |  j  j ƒ  |  j t |  j  j ƒ  ƒ g  ƒ |  j |  j  j ƒ |  j |  j  j ƒ d  S(   Ni   R4   (   R4   i   (	   R   R%   R   R   R   R1   t   itemst   clearR!   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt
   test_clear€   s    "c         C   sn   t  |  j d ƒ r> d t j t j d k r> t j d ƒ ‚ n  |  j j ƒ  |  j |  j j	 |  j j
 ƒ ƒ d  S(   Nt   _cachet
   DummyCachet   BACKENDs1   Session saving tests require a real cache backend(   R7   R   R   t   CACHESt   SESSION_CACHE_ALIASR   t   SkipTestt   saveR!   R$   t   session_key(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt	   test_saveŠ   s
    c         C   sF   |  j  j ƒ  |  j  j |  j  j ƒ |  j |  j  j |  j  j ƒ ƒ d  S(   N(   R   RG   R   RH   R   R$   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_delete‘   s    c         C   sŒ   d |  j  d <|  j  j ƒ  |  j  j } |  j  j ƒ  |  j |  j  j | ƒ ƒ |  j |  j  j | ƒ |  j |  j  j ƒ |  j |  j  j	 ƒ d  S(   NR)   R(   (
   R   RG   RH   t   flushR   R$   t   assertNotEqualR!   R   R   (   R   t   prev_key(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt
   test_flush–   s    c         C   sŽ   d \ |  j  d <|  j  d <|  j  j ƒ  |  j  j } t |  j  j ƒ  ƒ } |  j  j ƒ  |  j |  j  j | ƒ |  j t |  j  j ƒ  ƒ | ƒ d  S(   Nt   ct   dt   at   b(   RO   RP   (   R   RG   RH   R1   R>   t	   cycle_keyRL   R   (   R   RM   t	   prev_data(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt
   test_cycle    s    c         C   s   zx |  j  d ƒ } y | j ƒ  Wn t k
 r@ |  j d ƒ n X|  j | j d ƒ |  j | j d ƒ d  ƒ | j	 ƒ  Wd  | j	 d ƒ Xd  S(   Nt   1sc   The session object did not save properly.  Middleware may be saving cache items without namespaces.R   (
   R   RG   t   AttributeErrort   failRL   RH   R   R   R   R   (   R   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_invalid_key©   s    c         C   s#   d „  } |  j  t | |  j ƒ d  S(   Nc         S   s   |  j  ƒ  |  _ d  S(   N(   t   _get_new_session_keyRH   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   set_session_key»   s    (   t   assertRaisesRW   R   (   R   R[   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_session_key_is_read_onlyº   s    	c         C   sL   |  j  |  j j ƒ  t j ƒ |  j j d ƒ |  j  |  j j ƒ  t j ƒ d  S(   Ni    (   R   R   t   get_expiry_ageR   t   SESSION_COOKIE_AGEt
   set_expiry(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_default_expiryÀ   s    c         C   sw   t  j ƒ  } |  j j d ƒ |  j j d | ƒ } |  j | | t d d ƒ ƒ |  j j d | ƒ } |  j | d ƒ d  S(   Ni
   t   modificationt   seconds(   R   t   nowR   R`   t   get_expiry_dateR   R    R^   (   R   Rb   t   datet   age(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_custom_expiry_secondsÉ   s    c            s¬   t  j ƒ  ‰  t  j } z/ ‡  f d †  t  _ |  j j t d d ƒ ƒ Wd  | t  _ X|  j j d ˆ  ƒ } |  j | ˆ  t d d ƒ ƒ |  j j d ˆ  ƒ } |  j | d ƒ d  S(   Nc              s   ˆ  S(   N(    (    (   Rb   (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   <lambda>Ú   s    Rc   i
   Rb   (   R   Rd   R   R`   R    Re   R   R^   (   R   t   original_nowRf   Rg   (    (   Rb   s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_custom_expiry_timedeltaÔ   s    	
c         C   s„   t  j ƒ  } |  j j | t d d ƒ ƒ |  j j d | ƒ } |  j | | t d d ƒ ƒ |  j j d | ƒ } |  j | d ƒ d  S(   NRc   i
   Rb   (   R   Rd   R   R`   R    Re   R   R^   (   R   Rb   Rf   Rg   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_custom_expiry_datetimeå   s    c         C   sP   |  j  j d  ƒ |  j  j d ƒ |  j  j d  ƒ |  j |  j  j ƒ  t j ƒ d  S(   Ni
   (   R   R`   R   R   R^   R   R_   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_custom_expiry_resetð   s    c         C   s  t  d t ƒ w |  j j d ƒ |  j |  j j ƒ  ƒ |  j j d ƒ |  j |  j j ƒ  ƒ |  j j d  ƒ |  j |  j j ƒ  ƒ Wd  QXt  d t ƒ w |  j j d ƒ |  j |  j j ƒ  ƒ |  j j d ƒ |  j |  j j ƒ  ƒ |  j j d  ƒ |  j |  j j ƒ  ƒ Wd  QXd  S(   Nt   SESSION_EXPIRE_AT_BROWSER_CLOSEi
   i    (	   R   R%   R   R`   R   t   get_expire_at_browser_closeR!   R   t   True(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt    test_get_expire_at_browser_closeö   s    c         C   s?   i d d 6} |  j  j | ƒ } |  j |  j  j | ƒ | ƒ d  S(   Ns   a test values
   a test key(   R   t   encodeR   t   decode(   R   t   datat   encoded(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_decode  s    c         C   s¦   d  } d  } zr d |  j d <|  j j t d d ƒ ƒ |  j j ƒ  |  j j } |  j |  j j ƒ } | j } |  j d | ƒ Wd  |  j j | ƒ |  j j | ƒ Xd  S(   NR)   R(   Rc   i
   (	   R   R   R`   R    RG   RH   R   t   assertNotInR   (   R   t   old_session_keyt   new_session_keyt   new_session(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_actual_expiry  s    	N(!   t   __name__t
   __module__R   R   R   R   R   R   R#   R&   R'   R,   R.   R0   R3   R9   R;   R=   R@   RI   RJ   RN   RU   RY   R]   Ra   Rh   Rk   Rl   Rm   Rq   Rv   R{   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR      s<   												
	
	
	
			
												t   DatabaseSessionTestsc           B   s8   e  Z e Z d  „  Z d „  Z e d d ƒ d „  ƒ Z RS(   c         C   sV   d |  j  d <|  j  j ƒ  t j j d |  j  j ƒ } |  j | j ƒ  i d d 6ƒ d S(   sc   
        Test we can use Session.get_decoded to retrieve data stored
        in normal way
        i   R4   RH   N(   R   RG   R   t   objectsR   RH   R   t   get_decoded(   R   t   s(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_session_get_decoded)  s    c         C   s|   d |  j  d <|  j  j ƒ  t j j d |  j  j ƒ } t j j | j i d d 6| j ƒ |  j  ` |  j |  j  d d ƒ d S(   s1   
        Test SessionManager.save method
        i   t   yRH   i   N(	   R   RG   R   R   R   RH   t   expire_datet   _session_cacheR   (   R   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_sessionmanager_save5  s    #	t   SESSION_ENGINEs#   django.contrib.sessions.backends.dbc         C   s³   |  j  d t j j ƒ  ƒ d |  j d <|  j j d ƒ |  j j ƒ  |  j ƒ  } d | d <| j d ƒ | j ƒ  |  j  d t j j ƒ  ƒ t j	 d ƒ |  j  d t j j ƒ  ƒ d	 S(
   sK   
        Test clearsessions command for clearing expired sessions.
        i    R)   R(   i  iðñÿÿi   t   clearsessionsi   N(
   R   R   R   t   countR   R`   RG   R   R   t   call_command(   R   t   other_session(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_clearsessions_commandD  s    

(   R|   R}   t   DatabaseSessionR   R‚   R†   R   RŒ   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR~   %  s   		t   USE_TZt    DatabaseSessionWithTimeZoneTestsc           B   s   e  Z RS(    (   R|   R}   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR   ]  s   t   CacheDBSessionTestsc           B   sF   e  Z e Z e j d  e j e j d k d ƒ d „  ƒ Z	 d „  Z
 RS(   RB   RC   s1   Session saving tests require a real cache backendc         C   sF   |  j  j ƒ  |  j d ƒ $ |  j |  j  j |  j  j ƒ ƒ Wd  QXd  S(   Ni    (   R   RG   t   assertNumQueriesR!   R$   RH   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt    test_exists_searches_cache_firstf  s    c         C   sW   t  j ƒ  E t  j d ƒ t j t j d |  j _ |  j |  j j	 ƒ  i  ƒ Wd  QXd  S(   Nt   ignorei   (
   t   warningst   catch_warningst   simplefiltert   stringt   ascii_letterst   digitsR   t   _session_keyR   t   load(   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_load_overlong_keyn  s    (   R|   R}   t   CacheDBSessionR   R   t   skipIfR   RD   RE   R’   Rœ   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR   b  s
   	t   CacheDBSessionWithTimeZoneTestsc           B   s   e  Z RS(    (   R|   R}   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyRŸ   v  s   t   FileSessionTestsc           B   sb   e  Z e Z d  „  Z d „  Z e d d ƒ d „  ƒ Z d „  Z d „  Z	 e d d ƒ d	 „  ƒ Z
 RS(
   c         C   sW   t  j |  _ t j ƒ  |  _ t  _ t |  j d ƒ r@ |  j ` n  t	 t
 |  ƒ j ƒ  d  S(   Nt   _storage_path(   R   t   SESSION_FILE_PATHt   original_session_file_patht   tempfilet   mkdtempt   temp_session_storeR7   R   R¡   t   superR    R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR   €  s
    c         C   s3   t  t |  ƒ j ƒ  |  j t _ t j |  j ƒ d  S(   N(	   R§   R    R   R£   R   R¢   t   shutilt   rmtreeR¦   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR   ‰  s    R¢   s3   /if/this/directory/exists/you/have/a/weird/computerc         C   s    |  j  ` |  j t |  j  ƒ d  S(   N(   R   R¡   R\   R   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_configuration_checkŽ  s    	c         C   s    |  j  t |  j d ƒ j ƒ d  S(   Ns   a\b\c(   R\   R   R   R›   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_invalid_key_backslash•  s    	c         C   s    |  j  t |  j d ƒ j ƒ d  S(   Ns   a/b/c(   R\   R   R   R›   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_invalid_key_forwardslashš  s    	R‡   s%   django.contrib.sessions.backends.filec            sË   |  j  j ƒ  ‰ t j ‰  ‡  ‡ f d †  } |  j d | ƒ  ƒ d |  j d <|  j j d ƒ |  j j ƒ  |  j  ƒ  } d | d <| j d ƒ | j ƒ  |  j d | ƒ  ƒ t j	 d ƒ |  j d	 | ƒ  ƒ d
 S(   sK   
        Test clearsessions command for clearing expired sessions.
        c             s5   t  g  t j ˆ ƒ D] }  |  j ˆ  ƒ r |  ^ q ƒ S(   N(   t   lent   ost   listdirt
   startswith(   t   session_file(   t   file_prefixt   storage_path(    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   count_sessions§  s    i    R)   R(   i  iðñÿÿi   Rˆ   i   N(
   R   t   _get_storage_pathR   t   SESSION_COOKIE_NAMER   R   R`   RG   R   RŠ   (   R   R´   R‹   (    (   R²   R³   s6   ../Django//lib/python/django/contrib/sessions/tests.pyRŒ   Ÿ  s    	

(   R|   R}   t   FileSessionR   R   R   R   Rª   R«   R¬   RŒ   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR    |  s   					t   CacheSessionTestsc           B   sZ   e  Z e Z d  „  Z d „  Z e d i i d d 6d 6i d d 6d 6d d ƒ d	 „  ƒ Z RS(
   c         C   sW   t  j ƒ  E t  j d ƒ t j t j d |  j _ |  j |  j j	 ƒ  i  ƒ Wd  QXd  S(   NR“   i   (
   R”   R•   R–   R—   R˜   R™   R   Rš   R   R›   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyRœ   Ã  s    c         C   s6   |  j  j ƒ  |  j t d ƒ j |  j  j ƒ d  ƒ d  S(   Nt   default(   R   RG   RL   R   R   t	   cache_keyR   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_default_cacheÊ  s    RD   s+   django.core.cache.backends.dummy.DummyCacheRC   R¹   s-   django.core.cache.backends.locmem.LocMemCachet   sessionsRE   c         C   s[   |  j  j ƒ  |  j t d ƒ j |  j  j ƒ d  ƒ |  j t d ƒ j |  j  j ƒ d  ƒ d  S(   NR¹   R¼   (   R   RG   R   R   R   Rº   R   RL   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_non_default_cacheÎ  s    	%(   R|   R}   t   CacheSessionR   Rœ   R»   R   R½   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR¸   ¿  s   			t   SessionMiddlewareTestsc           B   sY   e  Z e d  e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z e d e ƒ d „  ƒ Z d „  Z RS(   t   SESSION_COOKIE_SECUREc         C   sr   t  ƒ  j d ƒ } t d ƒ } t ƒ  } | j | ƒ d | j d <| j | | ƒ } |  j | j t	 j
 d ƒ d  S(   Nt   /s   Session testt   worldt   hellot   secure(   R   R   R	   R   t   process_requestR   t   process_responseR!   t   cookiesR   R¶   (   R   t   requestt   responset
   middleware(    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_secure_session_cookieÞ  s    	t   SESSION_COOKIE_HTTPONLYc         C   s’   t  ƒ  j d ƒ } t d ƒ } t ƒ  } | j | ƒ d | j d <| j | | ƒ } |  j | j t	 j
 d ƒ |  j d t | j t	 j
 ƒ ƒ d  S(   NRÁ   s   Session testRÂ   RÃ   t   httponly(   R   R   R	   R   RÅ   R   RÆ   R!   RÇ   R   R¶   R/   t   str(   R   RÈ   RÉ   RÊ   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_httponly_session_cookieí  s    		c         C   s’   t  ƒ  j d ƒ } t d ƒ } t ƒ  } | j | ƒ d | j d <| j | | ƒ } |  j | j t	 j
 d ƒ |  j d t | j t	 j
 ƒ ƒ d  S(   NRÁ   s   Session testRÂ   RÃ   RÍ   (   R   R   R	   R   RÅ   R   RÆ   R   RÇ   R   R¶   Rw   RÎ   (   R   RÈ   RÉ   RÊ   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_no_httponly_session_cookieþ  s    		c         C   sy   t  ƒ  j d ƒ } t d ƒ } d | _ t ƒ  } | j | ƒ d | j d <| j | | ƒ } |  j d | j j	 ƒ  ƒ d  S(   NRÁ   s   Horrible erroriô  RÂ   RÃ   (
   R   R   R	   t   status_codeR   RÅ   R   RÆ   Rw   R›   (   R   RÈ   RÉ   RÊ   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   test_session_save_on_500  s    		(	   R|   R}   R   Rp   RË   RÏ   R%   RÐ   RÒ   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR¿   Ü  s   t   CookieSessionTestsc           B   s2   e  Z e Z d  „  Z d „  Z e j d „  ƒ Z RS(   c         C   s   d S(   sv   
        This test tested exists() in the other session backends, but that
        doesn't make sense for us.
        N(    (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyRI   $  s    c         C   s   d S(   s  
        This test tested cycle_key() which would create a new session
        key for the same session data. But we can't invalidate previously
        signed cookies (other than letting them expire naturally) so
        testing for this behavior is meaningless.
        N(    (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyRU   +  s    c         C   s   t  t |  ƒ j ƒ  d  S(   N(   R§   RÓ   R{   (   R   (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyR{   4  s    (	   R|   R}   t   CookieSessionR   RI   RU   R   t   expectedFailureR{   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyRÓ      s   			(5   t   datetimeR    R®   R¨   R—   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.backends.signed_cookiesRÔ   t   django.contrib.sessions.modelsR   t"   django.contrib.sessions.middlewareR   t   django.core.cacheR   t   django.coreR   t   django.core.exceptionsR   R   t   django.httpR	   t   django.testR
   R   t   django.test.utilsR   t   django.utilsR   R   R   t   objectR   R~   Rp   R   R   RŸ   R    R¸   R¿   RÓ   (    (    (    s6   ../Django//lib/python/django/contrib/sessions/tests.pyt   <module>   sD   ÿ 8CD