ó
¬«Y]c           @   s•   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 „  Z d e j	 f d „  ƒ  YZ	 d „  Z
 e d k r‘ e
 ƒ  n  d S(	   iÿÿÿÿN(   t   reload(   t   test_supportc           C   s
   t  ‚ d  S(   N(   t
   SystemExit(    (    (    s!   lib/python2.7/test/test_atexit.pyt   exit	   s    t   TestCasec           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 RS(   c         C   sZ   t  j |  _ t  j |  _ t j ƒ  |  _ |  j t  _ t  _ |  _ t j	 |  _
 g  t _	 d  S(   N(   t   syst   stdoutt   save_stdoutt   stderrt   save_stderrt   StringIOt   streamt   subst_iot   atexitt   _exithandlerst   save_handlers(   t   self(    (    s!   lib/python2.7/test/test_atexit.pyt   setUp   s    c         C   s(   |  j  t _ |  j t _ |  j t _ d  S(   N(   R   R   R   R	   R   R   R   R   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyt   tearDown   s    c         C   s`   t  j |  j ƒ t  j |  j ƒ t  j |  j d d d ƒt  j ƒ  |  j |  j j ƒ  d ƒ d  S(   Ni   t   kwt   abcs"   h4 (4,) {'kw': 'abc'}
h4 () {}
h1
(   R   t   registert   h1t   h4t   _run_exitfuncst   assertEqualR   t   getvalue(   R   (    (    s!   lib/python2.7/test/test_atexit.pyt	   test_args   s    
c         C   s@   t  j d „  d d d „  d Dƒ d d ƒ |  j t t  j ƒ d  S(   Nc           S   s   d S(   Ni   (    (    (    (    s!   lib/python2.7/test/test_atexit.pyt   <lambda>$   t    i    c         s   s   |  ] } | Vq d  S(   N(    (   t   .0t   x(    (    s!   lib/python2.7/test/test_atexit.pys	   <genexpr>$   s    i   i   (   i   i   (   R   R   t   assertRaisest	   TypeErrorR   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyt   test_badargs#   s    )c         C   sW   t  j |  j ƒ t  j |  j ƒ t  j |  j ƒ t  j ƒ  |  j |  j j ƒ  d ƒ d  S(   Ns	   h3
h2
h1
(	   R   R   R   t   h2t   h3R   R   R   R   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyt
   test_order'   s
    
c         C   sg   t  j } |  j t  _ t t ƒ z t j |  j ƒ t j ƒ  Wd  | t  _ X|  j |  j	 j
 ƒ  d ƒ d  S(   Ns   h2
h1
(   R   t   exitfuncR   R    R   R   R#   R   R   R   R   (   R   t   exfunc(    (    s!   lib/python2.7/test/test_atexit.pyt   test_sys_override.   s    	

c         C   s7   t  j |  j ƒ t  j |  j ƒ |  j t t  j ƒ d  S(   N(   R   R   t   raise1t   raise2R    R!   R   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyt
   test_raise:   s    c         C   s=   t  j t ƒ |  j t t  j ƒ |  j |  j j ƒ  d ƒ d  S(   NR   (	   R   R   R   R    R   R   R   R   R   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyt	   test_exit?   s    c         C   s	   d GHd  S(   NR   (    (   R   (    (    s!   lib/python2.7/test/test_atexit.pyR   G   s    c         C   s	   d GHd  S(   NR#   (    (   R   (    (    s!   lib/python2.7/test/test_atexit.pyR#   J   s    c         C   s	   d GHd  S(   NR$   (    (   R   (    (    s!   lib/python2.7/test/test_atexit.pyR$   M   s    c         O   s   d G| G| GHd  S(   NR   (    (   R   t   argst   kwargs(    (    s!   lib/python2.7/test/test_atexit.pyR   P   s    c         C   s
   t  ‚ d  S(   N(   R!   (   R   (    (    s!   lib/python2.7/test/test_atexit.pyR)   S   s    c         C   s
   t  ‚ d  S(   N(   t   SystemError(   R   (    (    s!   lib/python2.7/test/test_atexit.pyR*   V   s    (   t   __name__t
   __module__R   R   R   R"   R%   R(   R+   R,   R   R#   R$   R   R)   R*   (    (    (    s!   lib/python2.7/test/test_atexit.pyR      s   													c           C   s   t  j t ƒ d  S(   N(   R   t   run_unittestR   (    (    (    s!   lib/python2.7/test/test_atexit.pyt	   test_mainY   s    t   __main__(   R   t   unittestR
   R   t   impR    t   testR   R   R   R3   R0   (    (    (    s!   lib/python2.7/test/test_atexit.pyt   <module>   s   	L	