;
Ëâ"Ic               @   sû   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Td d l m	 Z	 Gd „  d e j
 ƒ Z Gd „  d e j
 ƒ Z Gd	 „  d
 e j
 ƒ Z Gd „  d e j
 ƒ Z Gd „  d e j
 ƒ Z d „  Z e d k o e ƒ  n d S(   u9   Unit tests for contextlib.py, and other context managers.i    N(   u   *(   u   supportc             B   sD   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c                s–   g  ‰  t  ‡  f d †  ƒ } | ƒ  j } j ƒ  } z= | ~ } |  j ˆ  d g ƒ |  j | d ƒ ˆ  j | ƒ Wd  | ~ QX|  j ˆ  d d d g ƒ d  S(   Nc               3   s#   ˆ  j  d ƒ d Vˆ  j  d ƒ d  S(   Ni   i*   iç  (   u   append(    (   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   woohoo   s    i   i*   iç  (   u   contextmanageru   __exit__u	   __enter__u   assertEqualu   append(   u   selfu   woohoou   _[2]u   _[1]u   x(    (   u   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_contextmanager_plain   s    "c                sÇ   g  ‰  t  ‡  f d †  ƒ } yk | ƒ  j } j ƒ  } zF | ~ } |  j ˆ  d g ƒ |  j | d ƒ ˆ  j | ƒ t ƒ  ‚ Wd  | ~ QXWn t k
 o Yn X|  j d ƒ |  j ˆ  d d d g ƒ d  S(   Nc            	   3   s+   ˆ  j  d ƒ z	 d VWd  ˆ  j  d ƒ Xd  S(   Ni   i*   iç  (   u   append(    (   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   woohoo   s    	i   i*   u   Expected ZeroDivisionErroriç  (   u   contextmanageru   __exit__u	   __enter__u   assertEqualu   appendu   ZeroDivisionErroru   fail(   u   selfu   woohoou   _[2]u   _[1]u   x(    (   u   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_contextmanager_finally   s    "c             C   sH   t  d „  ƒ } | ƒ  } | j ƒ  |  j | j t t d ƒ d  ƒ ƒ d  S(   Nc               s   s	   d  Vd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   whee2   s    u   foo(   u   contextmanageru	   __enter__u   failIfu   __exit__u	   TypeErroru   None(   u   selfu   wheeu   ctx(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_contextmanager_no_reraise1   s    	
c             C   sH   t  d „  ƒ } | ƒ  } | j ƒ  |  j t | j t t d ƒ d  ƒ d  S(   Nc               s   s   y	 d  VWn d  VYn Xd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   whoo;   s    	u   foo(   u   contextmanageru	   __enter__u   assertRaisesu   RuntimeErroru   __exit__u	   TypeErroru   None(   u   selfu   whoou   ctx(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu*   test_contextmanager_trap_yield_after_throw:   s
    	
c                s¥   g  ‰ t  ‡ ‡  f d †  ƒ } | ƒ  j } j ƒ  } zI | ~ } ˆ  j ˆ d g ƒ ˆ  j | d ƒ ˆ j | ƒ t d ƒ ‚ Wd  | ~ QXˆ  j ˆ d d d g ƒ d  S(   Nc              3   sq   ˆ  j  d ƒ y	 d VWnT t k
 oH }  z2 ˆ  j  |  j d ƒ ˆ j ˆ  d d d g ƒ WYd  d  }  ~  Xn Xd  S(   Ni   i*   i    iç  (   u   appendu   ZeroDivisionErroru   argsu   assertEqual(   u   e(   u   stateu   self(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   woohooI   s    	i   i*   iç  (   u   contextmanageru   __exit__u	   __enter__u   assertEqualu   appendu   ZeroDivisionError(   u   selfu   woohoou   _[2]u   _[1]u   x(    (   u   selfu   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_contextmanager_exceptG   s    "c             C   sd   d „  } t  | d d ƒ d „  ƒ ƒ } |  j | j d ƒ |  j | j d ƒ |  j | j d ƒ d  S(   Nc                 s   ‡  f d †  } | S(   Nc                s1   x* ˆ  j  ƒ  D] \ } } t |  | | ƒ q W|  S(   N(   u   itemsu   setattr(   u   funcu   ku   v(   u   kw(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   decorateZ   s     (    (   u   kwu   decorate(    (   u   kwu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   attribsY   s    u   foou   barc             S   s   d S(   u   Whee!N(    (   u   spam(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   baz_   s    u   bazu   Whee!(   u   contextmanageru   assertEqualu   __name__u   foou   __doc__(   u   selfu   attribsu   baz(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_contextmanager_attribsX   s    	N(   u   __name__u
   __module__u   test_contextmanager_plainu   test_contextmanager_finallyu   test_contextmanager_no_reraiseu*   test_contextmanager_trap_yield_after_throwu   test_contextmanager_exceptu   test_contextmanager_attribs(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   ContextManagerTestCase   s   
						u   ContextManagerTestCasec             B   sM   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c       	   	   C   sª   t  d „  ƒ } t  d „  ƒ } t  d „  ƒ } t | ƒ  | ƒ  | ƒ  ƒ j } j ƒ  } zF | ~ \ } } } |  j | d ƒ |  j | d ƒ |  j | d ƒ Wd  | ~ QXd  S(   Nc               s   s	   d Vd  S(   Ni   (    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   al   s    c               s   s	   d Vd  S(   Ni   (    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   bo   s    c               s   s	   d Vd  S(   Ni   (    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   cr   s    i   i   i   (   u   contextmanageru   nestedu   __exit__u	   __enter__u   assertEqual(	   u   selfu   au   bu   cu   _[2]u   _[1]u   xu   yu   z(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nestedk   s    =c                sà   g  ‰  t  ‡  f d †  ƒ } t  ‡  f d †  ƒ } yf t | ƒ  | ƒ  ƒ j } j ƒ  } z5 | ~ \ } } ˆ  j | ƒ ˆ  j | ƒ d d Wd  | ~ QXWn6 t k
 o* |  j ˆ  d d d d d d	 g ƒ Yn X|  j d
 ƒ d  S(   Nc            	   3   s+   ˆ  j  d ƒ z	 d VWd  ˆ  j  d ƒ Xd  S(   Ni   i   i   (   u   append(    (   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   a|   s    	c            	   3   s+   ˆ  j  d ƒ z	 d VWd  ˆ  j  d ƒ Xd  S(   Ni   i   i   (   u   append(    (   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   bƒ   s    	i   i    i   i   i   i   i   u   Didn't raise ZeroDivisionError(   u   contextmanageru   nestedu   __exit__u	   __enter__u   appendu   ZeroDivisionErroru   assertEqualu   fail(   u   selfu   au   bu   _[2]u   _[1]u   xu   y(    (   u   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_cleanupz   s    4(c             C   sÒ   g  } t  d „  ƒ } Gd „  d t ƒ } yL t | ƒ  | ƒ  ƒ j } j ƒ  } z | ~ \ } } d d Wd  | ~ QXWnJ t k
 o |  j | | f d	 ƒ Yn/ t k
 o |  j d ƒ Yn X|  j d ƒ d  S(
   Nc               s   s	   d Vd  S(   Ni   (    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   a–   s    c             B   s    |  Ee  Z d  „  Z d „  Z d S(   c             S   s   d S(   Ni   (    (   u   self(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu	   __enter__š   s    c             W   s   y t  ƒ  ‚ Wn Yn Xd  S(   N(   u	   Exception(   u   selfu   exc_info(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   __exit__œ   s    N(   u   __name__u
   __module__u	   __enter__u   __exit__(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   b™   s   
	u   bi   i    i   u   Reraised wrong exceptionu   Didn't raise ZeroDivisionError(   i   i   (	   u   contextmanageru   objectu   nestedu   __exit__u	   __enter__u   ZeroDivisionErroru   assertEqualu	   Exceptionu   fail(   u   selfu   stateu   au   bu   _[2]u   _[1]u   xu   y(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_right_exception”   s    4c             C   s   t  d „  ƒ } t  d „  ƒ } y; t | ƒ  | ƒ  ƒ j } j ƒ  z d d Wd  | ~ QXWn! t k
 o |  j d ƒ Yn Xd  S(   Nc               s   s	   d  Vd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   a¬   s    c               s   s   y	 d  VWn Yn Xd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   b¯   s    	i   i    u    Didn't swallow ZeroDivisionError(   u   contextmanageru   nestedu   __exit__u	   __enter__u   ZeroDivisionErroru   fail(   u   selfu   au   bu   _[1](    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_b_swallows«   s    #c             C   ss   t  d „  ƒ } d } xG | d 7} t | ƒ  | ƒ  ƒ j } j ƒ  z PWd  | ~ QX| d 7} q |  j | d ƒ d  S(   Nc               s   s	   d  Vd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   a½   s    i    i   i
   (   u   contextmanageru   nestedu   __exit__u	   __enter__u   assertEqual(   u   selfu   au   stateu   _[1](    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_break¼   s    
#c             C   s„   t  d „  ƒ } d } xX | d k  oJ | d 7} t | ƒ  | ƒ  ƒ j } j ƒ  z w Wd  | ~ QX| d 7} q W|  j | d ƒ d  S(   Nc               s   s	   d  Vd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   aÉ   s    i    i   i   i
   (   u   contextmanageru   nestedu   __exit__u	   __enter__u   assertEqual(   u   selfu   au   stateu   _[1](    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_continueÈ   s     
#c                s5   t  d „  ƒ ‰  ‡  f d †  } |  j | ƒ  d ƒ d  S(   Nc               s   s   y	 d  VWn Yn Xd  S(   N(    (    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   aÕ   s    	c                 s7   t  ˆ  ƒ  ˆ  ƒ  ƒ j }  j ƒ  z d SWd  |  ~  QXd S(   Ni   i
   (   u   nestedu   __exit__u	   __enter__(   u   _[1](   u   a(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   fooÛ   s    #i   (   u   contextmanageru   assertEqual(   u   selfu   foo(    (   u   au1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_nested_returnÔ   s    N(	   u   __name__u
   __module__u   test_nestedu   test_nested_cleanupu   test_nested_right_exceptionu   test_nested_b_swallowsu   test_nested_breaku   test_nested_continueu   test_nested_return(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   NestedTestCaseg   s   
						u   NestedTestCasec             B   s    |  Ee  Z d  „  Z d „  Z d S(   c          	      s   g  ‰  G‡  f d †  d ƒ } | ƒ  } |  j  ˆ  g  ƒ t | ƒ j } j ƒ  } z | ~ } |  j  | | ƒ Wd  | ~ QX|  j  ˆ  d g ƒ d  S(   Nc                s   |  Ee  Z ‡  f d  †  Z d S(   c                s   ˆ  j  d ƒ d  S(   Ni   (   u   append(   u   self(   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   closeè   s    N(   u   __name__u
   __module__u   close(   u
   __locals__(   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   Cç   s   
u   Ci   (   u   assertEqualu   closingu   __exit__u	   __enter__(   u   selfu   Cu   xu   _[2]u   _[1]u   y(    (   u   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_closingå   s    	%c                s½   g  ‰  G‡  f d †  d ƒ } | ƒ  } |  j  ˆ  g  ƒ yM t | ƒ j } j ƒ  } z% | ~ } |  j  | | ƒ d d Wd  | ~ QXWn' t k
 o |  j  ˆ  d g ƒ Yn X|  j d ƒ d  S(   Nc                s   |  Ee  Z ‡  f d  †  Z d S(   c                s   ˆ  j  d ƒ d  S(   Ni   (   u   append(   u   self(   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   closeó   s    N(   u   __name__u
   __module__u   close(   u
   __locals__(   u   state(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   Cò   s   
u   Ci   i    u   Didn't raise ZeroDivisionError(   u   assertEqualu   closingu   __exit__u	   __enter__u   ZeroDivisionErroru   fail(   u   selfu   Cu   xu   _[2]u   _[1]u   y(    (   u   stateu1   /mit/python/lib/python3.0/test/test_contextlib.pyu   test_closing_errorð   s    	%N(   u   __name__u
   __module__u   test_closingu   test_closing_error(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   ClosingTestCaseá   s   
	u   ClosingTestCasec             B   s   |  Ee  Z d  „  Z d S(   c          !   C   sJ  t  j ƒ  } zd  } t | d ƒ j } j ƒ  } z* | ~ } |  j | j ƒ | j d ƒ Wd  | ~ QX|  j	 | j ƒ d  } yf t | d ƒ j } j ƒ  } z; | ~ } |  j | j ƒ |  j
 | j ƒ  d ƒ d d Wd  | ~ QXWn$ t k
 o |  j	 | j ƒ Yn X|  j d ƒ Wd  y t j | ƒ Wn t j k
 o Yn XXd  S(   Nu   wu   Booh
u   ri   i    u   Didn't raise ZeroDivisionError(   u   tempfileu   mktempu   Noneu   openu   __exit__u	   __enter__u   failIfu   closedu   writeu
   failUnlessu   assertEqualu   readu   ZeroDivisionErroru   failu   osu   removeu   error(   u   selfu   tfnu   fu   _[2]u   _[1]u   _[4]u   _[3](    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithOpen  s(    ((N(   u   __name__u
   __module__u   testWithOpen(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   FileContextTestCase   s   
u   FileContextTestCasec             B   sD   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   c             C   sÄ   |  j  | ƒ  ƒ | j } j ƒ  z |  j | ƒ  ƒ Wd  | ~ QX|  j  | ƒ  ƒ y< | j } j ƒ  z |  j | ƒ  ƒ d d Wd  | ~ QXWn$ t k
 o |  j  | ƒ  ƒ Yn X|  j d ƒ d  S(   Ni   i    u   Didn't raise ZeroDivisionError(   u   failIfu   __exit__u	   __enter__u
   failUnlessu   ZeroDivisionErroru   fail(   u   selfu   locku   lockedu   _[1]u   _[2](    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   boilerPlate  s    c             C   s#   t  j ƒ  } |  j | | j ƒ d  S(   N(   u	   threadingu   Locku   boilerPlateu   locked(   u   selfu   lock(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithLock*  s    c             C   s#   t  j ƒ  } |  j | | j ƒ d  S(   N(   u	   threadingu   RLocku   boilerPlateu	   _is_owned(   u   selfu   lock(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithRLock.  s    c                s/   t  j ƒ  ‰  ‡  f d †  } |  j ˆ  | ƒ d  S(   Nc                  s
   ˆ  j  ƒ  S(   N(   u	   _is_owned(    (   u   lock(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   locked4  s    (   u	   threadingu	   Conditionu   boilerPlate(   u   selfu   locked(    (   u   locku1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithCondition2  s    c                s/   t  j ƒ  ‰  ‡  f d †  } |  j ˆ  | ƒ d  S(   Nc                  s'   ˆ  j  d ƒ o ˆ  j ƒ  d Sd Sd  S(   NFT(   u   acquireu   Falseu   releaseu   True(    (   u   lock(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   locked:  s    
(   u	   threadingu	   Semaphoreu   boilerPlate(   u   selfu   locked(    (   u   locku1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithSemaphore8  s    c                s/   t  j ƒ  ‰  ‡  f d †  } |  j ˆ  | ƒ d  S(   Nc                  s'   ˆ  j  d ƒ o ˆ  j ƒ  d Sd Sd  S(   NFT(   u   acquireu   Falseu   releaseu   True(    (   u   lock(    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   lockedD  s    
(   u	   threadingu   BoundedSemaphoreu   boilerPlate(   u   selfu   locked(    (   u   locku1   /mit/python/lib/python3.0/test/test_contextlib.pyu   testWithBoundedSemaphoreB  s    N(   u   __name__u
   __module__u   boilerPlateu   testWithLocku   testWithRLocku   testWithConditionu   testWithSemaphoreu   testWithBoundedSemaphore(   u
   __locals__(    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   LockContextTestCase  s   
					
u   LockContextTestCasec               C   s   t  j t ƒ d  S(   N(   u   supportu   run_unittestu   __name__(    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu	   test_mainM  s    u   __main__(   u   __doc__u   sysu   osu   decimalu   tempfileu   unittestu	   threadingu
   contextlibu   testu   supportu   TestCaseu   ContextManagerTestCaseu   NestedTestCaseu   ClosingTestCaseu   FileContextTestCaseu   LockContextTestCaseu	   test_mainu   __name__(    (    (    u1   /mit/python/lib/python3.0/test/test_contextlib.pyu   <module>   s    
Zz3	