Ñò
à"Ic           @   s
  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Td d k l	 Z	 d e i
 f d „  ƒ  YZ d e i
 f d „  ƒ  YZ d	 e i
 f d
 „  ƒ  YZ d e i
 f d „  ƒ  YZ d e i
 f d „  ƒ  YZ d „  Z e d j o e ƒ  n d S(   s9   Unit tests for contextlib.py, and other context managers.iÿÿÿÿN(   t   *(   t   test_supportt   ContextManagerTestCasec           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c      	      sŽ   g  ‰  t  ‡  f d †  ƒ } | ƒ  i i ƒ  } z= | ~ } |  i ˆ  d g ƒ |  i | d ƒ ˆ  i | ƒ Wd  QX|  i ˆ  d d d g ƒ d  S(   Nc           3   s#   ˆ  i  d ƒ d Vˆ  i  d ƒ d  S(   Ni   i*   iç  (   t   append(    (   t   state(    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   woohoo   s    i   i*   iç  (   t   contextmanagert   __exit__t	   __enter__t   assertEqualR   (   t   selfR   t   _[1]t   x(    (   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_contextmanager_plain   s     c            s¾   g  ‰  t  ‡  f d †  ƒ } yc | ƒ  i i ƒ  } zF | ~ } |  i ˆ  d g ƒ |  i | d ƒ ˆ  i | ƒ t ƒ  ‚ Wd  QXWn t j
 o n X|  i d ƒ |  i ˆ  d d d g ƒ d  S(   Nc           3   s+   ˆ  i  d ƒ z	 d VWd  ˆ  i  d ƒ Xd  S(   Ni   i*   iç  (   R   (    (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR      s    	i   i*   s   Expected ZeroDivisionErroriç  (   R   R   R   R	   R   t   ZeroDivisionErrort   fail(   R
   R   R   R   (    (   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_contextmanager_finally   s     c         C   sH   t  d „  ƒ } | ƒ  } | i ƒ  |  i | i t t d ƒ d  ƒ ƒ d  S(   Nc           s   s	   d  Vd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   whee2   s    t   foo(   R   R   t   failIfR   t	   TypeErrort   None(   R
   R   t   ctx(    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_contextmanager_no_reraise1   s    	
c         C   sH   t  d „  ƒ } | ƒ  } | i ƒ  |  i t | i t t d ƒ d  ƒ d  S(   Nc           s   s   y	 d  VWn d  Vn Xd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   whoo;   s    	R   (   R   R   t   assertRaisest   RuntimeErrorR   R   R   (   R
   R   R   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt*   test_contextmanager_trap_yield_after_throw:   s
    	
c      	      s   g  ‰ t  ‡ ‡  f d †  ƒ } | ƒ  i i ƒ  } zI | ~ } ˆ  i ˆ d g ƒ ˆ  i | d ƒ ˆ i | ƒ t d ƒ ‚ Wd  QXˆ  i ˆ d d d g ƒ d  S(   Nc          3   s_   ˆ  i  d ƒ y	 d VWnB t j
 o6 }  ˆ  i  |  i d ƒ ˆ i ˆ  d d d g ƒ n Xd  S(   Ni   i*   i    iç  (   R   R   t   argsR	   (   t   e(   R   R
   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR   I   s    	i   i*   iç  (   R   R   R   R	   R   R   (   R
   R   R   R   (    (   R
   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_contextmanager_exceptG   s     c         C   sd   d „  } t  | d d ƒ d „  ƒ ƒ } |  i | i d ƒ |  i | i d ƒ |  i | i d ƒ d  S(   Nc             s   ‡  f d †  } | S(   Nc            s1   x* ˆ  i  ƒ  D] \ } } t |  | | ƒ q W|  S(   N(   t   itemst   setattr(   t   funct   kt   v(   t   kw(    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   decorateZ   s     (    (   R$   R%   (    (   R$   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   attribsY   s    R   t   barc         S   s   d S(   s   Whee!N(    (   t   spam(    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   baz_   s    R)   s   Whee!(   R   R	   t   __name__R   t   __doc__(   R
   R&   R)   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_contextmanager_attribsX   s    	(   R*   t
   __module__R   R   R   R   R   R,   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR      s   						t   NestedTestCasec           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s¢   t  d „  ƒ } t  d „  ƒ } t  d „  ƒ } t | ƒ  | ƒ  | ƒ  ƒ i i ƒ  } zF | ~ \ } } } |  i | d ƒ |  i | d ƒ |  i | d ƒ Wd  QXd  S(   Nc           s   s	   d Vd  S(   Ni   (    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   al   s    c           s   s	   d Vd  S(   Ni   (    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   bo   s    c           s   s	   d Vd  S(   Ni   (    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   cr   s    i   i   i   (   R   t   nestedR   R   R	   (   R
   R/   R0   R1   R   R   t   yt   z(    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nestedk   s    ;c            s×   g  ‰  t  ‡  f d †  ƒ } t  ‡  f d †  ƒ } y^ t | ƒ  | ƒ  ƒ i i ƒ  } z5 | ~ \ } } ˆ  i | ƒ ˆ  i | ƒ d d Wd  QXWn5 t j
 o) |  i ˆ  d d d d d d	 g ƒ n X|  i d
 ƒ d  S(   Nc           3   s+   ˆ  i  d ƒ z	 d VWd  ˆ  i  d ƒ Xd  S(   Ni   i   i   (   R   (    (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   |   s    	c           3   s+   ˆ  i  d ƒ z	 d VWd  ˆ  i  d ƒ Xd  S(   Ni   i   i   (   R   (    (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR0   ƒ   s    	i   i    i   i   i   i   i   s   Didn't raise ZeroDivisionError(   R   R2   R   R   R   R   R	   R   (   R
   R/   R0   R   R   R3   (    (   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_cleanupz   s    2'c      	   C   sË   g  } t  d „  ƒ } d t f d „  ƒ  Y} yD t | ƒ  | ƒ  ƒ i i ƒ  } z | ~ \ } } d d Wd  QXWnH t j
 o |  i | | f d	 ƒ n. t j
 o |  i d ƒ n X|  i d ƒ d  S(
   Nc           s   s	   d Vd  S(   Ni   (    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   –   s    R0   c           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   d S(   Ni   (    (   R
   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR   š   s    c         W   s   y t  ƒ  ‚ Wn n Xd  S(   N(   t	   Exception(   R
   t   exc_info(    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR   œ   s    (   R*   R-   R   R   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR0   ™   s   	i   i    i   s   Reraised wrong exceptions   Didn't raise ZeroDivisionError(   i   i   (	   R   t   objectR2   R   R   R   R	   R7   R   (   R
   R   R/   R0   R   R   R3   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_right_exception”   s    2c      	   C   sx   t  d „  ƒ } t  d „  ƒ } y3 t | ƒ  | ƒ  ƒ i i ƒ  z d d Wd  QXWn  t j
 o |  i d ƒ n Xd  S(   Nc           s   s	   d  Vd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   ¬   s    c           s   s   y	 d  VWn n Xd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR0   ¯   s    	i   i    s    Didn't swallow ZeroDivisionError(   R   R2   R   R   R   R   (   R
   R/   R0   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_b_swallows«   s    !c         C   st   t  d „  ƒ } d } xH t o@ | d 7} t | ƒ  | ƒ  ƒ i i ƒ  z PWd  QX| d 7} q W|  i | d ƒ d  S(   Nc           s   s	   d  Vd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   ½   s    i    i   i
   (   R   t   TrueR2   R   R   R	   (   R
   R/   R   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_break¼   s     
!c         C   s|   t  d „  ƒ } d } xP | d j  oB | d 7} t | ƒ  | ƒ  ƒ i i ƒ  z w Wd  QX| d 7} q W|  i | d ƒ d  S(   Nc           s   s	   d  Vd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   É   s    i    i   i   i
   (   R   R2   R   R   R	   (   R
   R/   R   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_continueÈ   s     
!	c            s5   t  d „  ƒ ‰  ‡  f d †  } |  i | ƒ  d ƒ d  S(   Nc           s   s   y	 d  VWn n Xd  S(   N(    (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR/   Õ   s    	c              s/   t  ˆ  ƒ  ˆ  ƒ  ƒ i i ƒ  z d SWd  QXd S(   Ni   i
   (   R2   R   R   (    (   R/   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR   Û   s    !
i   (   R   R	   (   R
   R   (    (   R/   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_nested_returnÔ   s    (	   R*   R-   R5   R6   R:   R;   R=   R>   R?   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR.   g   s   						t   ClosingTestCasec           B   s   e  Z d  „  Z d „  Z RS(   c            sˆ   g  ‰  d d ‡  f d †  ƒ  Y} | ƒ  } |  i  ˆ  g  ƒ t | ƒ i i ƒ  } z | ~ } |  i  | | ƒ Wd  QX|  i  ˆ  d g ƒ d  S(   Nt   Cc              s   e  Z ‡  f d  †  Z RS(   c            s   ˆ  i  d ƒ d  S(   Ni   (   R   (   R
   (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   closeè   s    (   R*   R-   RB   (    (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRA   ç   s   i   (    (   R	   t   closingR   R   (   R
   RA   R   R   R3   (    (   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_closingå   s    	#c            s·   g  ‰  d d ‡  f d †  ƒ  Y} | ƒ  } |  i  ˆ  g  ƒ yE t | ƒ i i ƒ  } z% | ~ } |  i  | | ƒ d d Wd  QXWn& t j
 o |  i  ˆ  d g ƒ n X|  i d ƒ d  S(   NRA   c              s   e  Z ‡  f d  †  Z RS(   c            s   ˆ  i  d ƒ d  S(   Ni   (   R   (   R
   (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRB   ó   s    (   R*   R-   RB   (    (   R   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRA   ò   s   i   i    s   Didn't raise ZeroDivisionError(    (   R	   RC   R   R   R   R   (   R
   RA   R   R   R3   (    (   R   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   test_closing_errorð   s    	#(   R*   R-   RD   RE   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyR@   á   s   	t   FileContextTestCasec           B   s   e  Z d  „  Z RS(   c         C   s8  t  i ƒ  } zú d  } t | d ƒ i i ƒ  } z* | ~ } |  i | i ƒ | i d ƒ Wd  QX|  i	 | i ƒ d  } y^ t | d ƒ i i ƒ  } z; | ~ } |  i | i ƒ |  i
 | i ƒ  d ƒ d d Wd  QXWn# t j
 o |  i	 | i ƒ n X|  i d ƒ Wd  y t i | ƒ Wn t i j
 o n XXd  S(   Nt   ws   Booh
t   ri   i    s   Didn't raise ZeroDivisionError(   t   tempfilet   mktempR   t   openR   R   R   t   closedt   writet
   failUnlessR	   t   readR   R   t   ost   removet   error(   R
   t   tfnt   fR   t   _[2](    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithOpen  s(    &&(   R*   R-   RV   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRF      s   t   LockContextTestCasec           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s³   |  i  | ƒ  ƒ | i i ƒ  z |  i | ƒ  ƒ Wd  QX|  i  | ƒ  ƒ y4 | i i ƒ  z |  i | ƒ  ƒ d d Wd  QXWn# t j
 o |  i  | ƒ  ƒ n X|  i d ƒ d  S(   Ni   i    s   Didn't raise ZeroDivisionError(   R   R   R   RN   R   R   (   R
   t   lockt   locked(    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   boilerPlate  s    c         C   s#   t  i ƒ  } |  i | | i ƒ d  S(   N(   t	   threadingt   LockRZ   RY   (   R
   RX   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithLock*  s    c         C   s#   t  i ƒ  } |  i | | i ƒ d  S(   N(   R[   t   RLockRZ   t	   _is_owned(   R
   RX   (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithRLock.  s    c            s/   t  i ƒ  ‰  ‡  f d †  } |  i ˆ  | ƒ d  S(   Nc              s
   ˆ  i  ƒ  S(   N(   R_   (    (   RX   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRY   4  s    (   R[   t	   ConditionRZ   (   R
   RY   (    (   RX   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithCondition2  s    c            s/   t  i ƒ  ‰  ‡  f d †  } |  i ˆ  | ƒ d  S(   Nc              s'   ˆ  i  t ƒ o ˆ  i ƒ  t St Sd  S(   N(   t   acquiret   Falset   releaseR<   (    (   RX   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRY   :  s    
(   R[   t	   SemaphoreRZ   (   R
   RY   (    (   RX   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithSemaphore8  s    c            s/   t  i ƒ  ‰  ‡  f d †  } |  i ˆ  | ƒ d  S(   Nc              s'   ˆ  i  t ƒ o ˆ  i ƒ  t St Sd  S(   N(   Rc   Rd   Re   R<   (    (   RX   (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRY   D  s    
(   R[   t   BoundedSemaphoreRZ   (   R
   RY   (    (   RX   s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   testWithBoundedSemaphoreB  s    (   R*   R-   RZ   R]   R`   Rb   Rg   Ri   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyRW     s   					
c           C   s   t  i t ƒ d  S(   N(   R   t   run_unittestR*   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt	   test_mainM  s    t   __main__(   R+   t   sysRP   t   decimalRI   t   unittestR[   t
   contextlibt   testR   t   TestCaseR   R.   R@   RF   RW   Rk   R*   (    (    (    s1   /mit/python/lib/python2.6/test/test_contextlib.pyt   <module>   s    
Zz3	