ó
°4ùTc           @   sv  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z y d  d l Z Wn e k
 ri d Z n Xd  d l	 Z	 d  d l	 Z
 d e	 j f d „  ƒ  YZ e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e
 j e e d ƒ d ƒ e
 j e j d k d ƒ e
 j e j d	 k d
 ƒ d e f d „  ƒ  Yƒ ƒ ƒ Z e	 j e e d ƒ o#e d k	 d ƒ Z e	 j e j d k d ƒ Z e e e ƒ ƒ Z e d k rre	 j ƒ  n  d S(   iÿÿÿÿN(   t   StringIOt	   TestBreakc           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 RS(   c         C   sA   t  j t  j ƒ |  _ |  j d  k	 r= t  j  t  j |  j ƒ n  d  S(   N(   t   signalt	   getsignalt   SIGINTt   _default_handlert   int_handlert   None(   t   self(    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   setUp   s    c         C   s8   t  j  t  j |  j ƒ t j ƒ  t j _ d  t j _	 d  S(   N(
   R   R   R   t   weakreft   WeakKeyDictionaryt	   unittest2t   signalst   _resultsR   t   _interrupt_handler(   R   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   tearDown   s    c         C   s–   t  j t  j ƒ } t j ƒ  |  j t  j t  j ƒ | ƒ y# t j ƒ  } t j | t  j ƒ Wn t	 k
 r{ |  j
 d ƒ n X|  j t j j j ƒ d  S(   Ns   KeyboardInterrupt not handled(   R   R   R   R   t   installHandlert   assertNotEqualt   ost   getpidt   killt   KeyboardInterruptt   failt
   assertTrueR   R   t   called(   R   t   default_handlert   pid(    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testInstallHandler   s    
c         C   sm   t  j ƒ  } t  j | ƒ xM t  j j D]2 } | | k r< Pq& | | k	 r& |  j d ƒ q& q& W|  j d ƒ d  S(   Ns   odd object in result sets   result not found(   R   t
   TestResultt   registerResultR   R   R   (   R   t   resultt   ref(    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testRegisterResult,   s    c            s£   t  j t  j ƒ } t j ƒ  } t j ƒ  t j | ƒ ˆ  j t  j t  j ƒ | ƒ ‡  f d †  } y | | ƒ Wn t k
 rŽ ˆ  j	 d ƒ n Xˆ  j
 | j ƒ d  S(   Nc            s<   t  j ƒ  } t  j | t j ƒ t |  _ ˆ  j |  j ƒ d  S(   N(	   R   R   R   R   R   t   Truet   breakCaughtR   t
   shouldStop(   R   R   (   R   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testB   s    	s   KeyboardInterrupt not handled(   R   R   R   R   R   R   R   R   R   R   R   R#   (   R   R   R   R%   (    (   R   s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testInterruptCaught9   s    
c            s    t  j t  j ƒ t  j k r+ ˆ  j d ƒ n  t j ƒ  } t j ƒ  t j | ƒ ‡  f d †  } y | | ƒ Wn t	 k
 r~ n Xˆ  j
 d ƒ ˆ  j | j ƒ d  S(   Ns&   test requires SIGINT to not be ignoredc            s\   t  j ƒ  } t  j | t j ƒ t |  _ ˆ  j |  j ƒ t  j | t j ƒ ˆ  j	 d ƒ d  S(   Ns#   Second KeyboardInterrupt not raised(
   R   R   R   R   R   R"   R#   R   R$   R   (   R   R   (   R   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR%   X   s    	s#   Second KeyboardInterrupt not raised(   R   R   R   t   SIG_IGNt   skipTestR   R   R   R   R   R   R   R#   (   R   R   R%   (    (   R   s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testSecondInterruptO   s    
c         C   sâ   t  j ƒ  t  j ƒ  } t  j | ƒ t j t j ƒ } t  j ƒ  } t  j | ƒ |  j t j t j ƒ | ƒ t  j ƒ  } d „  } y | | ƒ Wn t k
 r­ |  j	 d ƒ n X|  j
 | j ƒ |  j
 | j ƒ |  j | j ƒ d  S(   Nc         S   s#   t  j ƒ  } t  j | t j ƒ d  S(   N(   R   R   R   R   R   (   R   R   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR%   v   s    s   KeyboardInterrupt not handled(   R   R   R   R   R   R   R   t   assertEqualR   R   R   R$   t   assertFalse(   R   R   t   new_handlert   result2t   result3R%   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testTwoResultsi   s     
	c            s±   t  j t  j ƒ t  j k r+ |  j d ƒ n  t j ƒ  t  j t  j ƒ ‰  ‡  f d †  } t  j  t  j | ƒ y# t j ƒ  } t j	 | t  j ƒ Wn t
 k
 rŸ n X|  j d ƒ d  S(   Ns&   test requires SIGINT to not be ignoredc            s   ˆ  |  | ƒ d  S(   N(    (   t   framet   signum(   t   handler(    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR,      s    s6   replaced but delegated handler doesn't raise interrupt(   R   R   R   R'   R(   R   R   R   R   R   R   R   (   R   R,   R   (    (   R2   s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testHandlerReplacedButCalled„   s    
c         C   sD   t  j d t ƒ  ƒ } | j t  j ƒ  ƒ } |  j | t  j j ƒ d  S(   Nt   stream(   R   t   TextTestRunnerR    t   runt	   TestSuitet   assertInR   R   (   R   t   runnerR   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt
   testRunner›   s    c         C   sS   t  j ƒ  } t  j | ƒ t j | ƒ } ~ t j ƒ  t j ƒ  |  j | ƒ  ƒ d  S(   N(   R   R   R   R
   R    t   gct   collectt   assertIsNone(   R   R   R    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testWeakReferences£   s    
 
c         C   s    t  j ƒ  } t  j | ƒ t  j ƒ  |  j t  j | ƒ ƒ |  j t  j t  j ƒ  ƒ ƒ y# t j ƒ  } t j	 | t
 j ƒ Wn t k
 r‹ n X|  j | j ƒ d  S(   N(   R   R   R   R   R   t   removeResultR+   R   R   R   R   R   R   R$   (   R   R   R   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testRemoveResult°   s    
c            s¶  t  ƒ  ‰ t  ƒ  ‰ t  ƒ  ‰ t  ƒ  ‰ t j t j ƒ } d t  f ‡ f d †  ƒ  Y‰  d t j f ‡  ‡ ‡ ‡ f d †  ƒ  Y} | t ƒ } | j ƒ  |  j ˆ  j	 d	 i ˆ d 6ˆ d 6t d 6d  d 6f g ƒ |  j ˆ  j ˆ g ƒ |  j | j ˆ ƒ |  j t j t j ƒ | ƒ g  ˆ  _	 g  ˆ  _ | t ƒ } | j ƒ  |  j ˆ  j	 d
 i ˆ d 6ˆ d 6t d 6d  d 6f g ƒ |  j ˆ  j ˆ g ƒ |  j | j ˆ ƒ |  j t j t j ƒ | ƒ d  S(   Nt
   FakeRunnerc              s,   e  Z g  Z g  Z d  „  Z ‡  f d †  Z RS(   c         _   s   |  j  j | | f ƒ d  S(   N(   t   initArgst   append(   R   t   argst   kwargs(    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   __init__Ì   s    c            s   |  j  j | ƒ ˆ  S(   N(   t   runArgsRC   (   R   R%   (   R   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR6   Î   s    (   t   __name__t
   __module__RB   RG   RF   R6   (    (   R   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyRA   É   s   	t   Programc              s    e  Z ‡  ‡ ‡ ‡ f d  †  Z RS(   c            sL   t  |  _ ˆ |  _ ˆ |  _ | |  _ t  |  _ ˆ  |  _ ˆ |  _ d  |  _	 d  S(   N(
   t   Falset   exitt	   verbosityt   failfastt
   catchbreakt	   tb_localsR:   R%   R   R   (   R   RO   (   RA   RN   R%   RM   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyRF   Ó   s    							(   RH   RI   RF   (    (   RA   RN   R%   RM   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyRJ   Ò   s   RM   RN   RP   t   buffer(    (    (   t   objectR   R   R   R   t   TestProgramRK   t   runTestsR*   RB   R   RG   R   R"   R   (   R   R   RJ   t   p(    (   RA   RN   R   R%   RM   s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testMainInstallsHandlerÂ   s6    					(
		
c         C   sl   t  j t  j ƒ } t j ƒ  t j ƒ  |  j t  j t  j ƒ | ƒ t j ƒ  |  j t  j t  j ƒ | ƒ d  S(   N(   R   R   R   R   R   t   removeHandlerR*   (   R   R   (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testRemoveHandlerø   s    


c            s^   t  j t  j ƒ ‰  t j ƒ  t j ‡  ‡ f d †  ƒ } | ƒ  ˆ j t  j t  j ƒ ˆ  ƒ d  S(   Nc              s    ˆ j  t j t j ƒ ˆ  ƒ d  S(   N(   R*   R   R   R   (    (   R   R   (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR%     s    (   R   R   R   R   R   RW   R   (   R   R%   (    (   R   R   s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   testRemoveHandlerAsDecorator  s
    
N(   RH   RI   R   R   R	   R   R   R!   R&   R)   R/   R3   R:   R>   R@   RV   RX   RY   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR      s   												6	
R   s   Test requires os.killt   win32s   Test cannot run on Windowst   freebsd6s9   Test kills regrtest on freebsd6 if threads have been usedt   TestBreakDefaultIntHandlerc           B   s   e  Z e j Z RS(    (   RH   RI   R   t   default_int_handlerR   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR\     s   t   TestBreakSignalIgnoredc           B   s   e  Z e j Z RS(    (   RH   RI   R   R'   R   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR^     s   t   TestBreakSignalDefaultc           B   s   e  Z e j Z RS(    (   RH   RI   R   t   SIG_DFLR   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR_     s   c           B   s   e  Z e j Z RS(    (   RH   RI   R   R]   R   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR\   #  s   c           B   s   e  Z e j Z RS(    (   RH   RI   R   R'   R   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR^   *  s   c           B   s   e  Z e j Z RS(    (   RH   RI   R   R`   R   (    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyR_   1  s   s,   test uses os.kill(...) and the signal modules   can't run on windowst   __main__(   R;   R   t   sysR
   t	   six.movesR    R   t   ImportErrorR   R   t   unittestt   TestCaseR   t
   skipUnlesst   hasattrt   skipIft   platformR\   R^   R_   t   skippert   skipper2RH   t   main(    (    (    s8   lib/python2.7/site-packages/unittest2/test/test_break.pyt   <module>   sR   
ü	