ó
O'—^c           @@  s(  d  d l  m 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 m Z m Z d d l m Z y  d  d	 l m Z m Z m Z Wn- e k
 rß d  d	 l m Z m Z m Z n Xd
 „  Z e d „  ƒ Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   i    (   t   absolute_importN(   t   contextmanager(   t   time(   t   SkipTest(   t   _shutdown_cleanupt   reset_signalst   restart_statei   (   t   Case(   t   Mockt   callt   patchc         C@  s   t  t |  ƒ S(   N(   t   getattrt   signal(   t   name(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   signo   s    c         c@  sZ   d d l  m } | j |  } | _ | j | } | _ z	 d  VWd  | | | _ | _ Xd  S(   Ni    (   t   common(   t   billiardR   t   TERMSIGS_DEFAULTt   TERMSIGS_FULL(   t   defaultt   fullR   t   prev_deft	   prev_full(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   termsigs   s    	t   test_reset_signalsc           B@  s†   e  Z d  „  Z d „  Z d g d „ Z d g d „ Z d d d g d „ Z d d d g d „ Z d g d	 „ Z e	 d d d
 „ ƒ Z RS(   c         C@  s"   t  j d k r t d ƒ ‚ n  d  S(   Nt   win32s   win32: skip(   t   syst   platformR   (   t   self(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   setUp*   s    c         C@  s]   t  d ƒ K } t d t ƒ  ƒ |  j | j ƒ |  j t j | j d d ƒ d ƒ Wd  QXd  S(   Ns   sys.exiti   i    (	   R
   R   R   t
   assertTruet   calledt   assertEqualt   ost   WTERMSIGt	   call_args(   R   t   exit(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_shutdown_handler.   s    t   SIGTERMc         C@  s;   |  j  | g  t j ƒ  \ } } |  j | j ƒ Wd  QXd  S(   N(   t   assert_contextR   t   SIG_IGNt   assertFalseR   (   R   t   sigst   _t   SET(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt"   test_does_not_reset_ignored_signal4   s    !c         C@  s8   |  j  | g  d  ƒ  \ } } |  j | j ƒ Wd  QXd  S(   N(   R'   t   NoneR)   R   (   R   R*   R+   R,   (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt&   test_does_not_reset_if_current_is_None8   s    t   SIGINTt   SIGUSR1c      
   C@  sZ   |  j  | g  t j ƒ < \ } } | j g  | D] } t t | ƒ t ƒ ^ q. ƒ Wd  QXd  S(   N(   R'   R   t   SIG_DFLt   assert_has_callsR	   R   R   (   R   R*   R+   R,   t   sig(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_resets_for_SIG_DFL<   s    !c      
   C@  sZ   |  j  | g  t ƒ  ƒ < \ } } | j g  | D] } t t | ƒ t ƒ ^ q. ƒ Wd  QXd  S(   N(   R'   t   objectR3   R	   R   R   (   R   R*   R+   R,   R4   (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_resets_for_objB   s    !c         C@  sg   x` t  ƒ  t ƒ  t ƒ  t ƒ  f D]@ } |  j | g  t j | ƒ  \ } } |  j | j ƒ Wd  QXq Wd  S(   N(	   t   OSErrort   AttributeErrort
   ValueErrort   RuntimeErrorR'   R   R2   R   R   (   R   R*   t   excR+   t   S(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_handles_errorsH   s    $c         c@  s”   t  | | ƒ  t d ƒ l } t d ƒ W } | | _ | | _ t ƒ  | j g  | D] } t t | ƒ ƒ ^ qT ƒ | | f VWd  QXWd  QXWd  QXd  S(   Ns   signal.getsignals   signal.signal(   R   R
   t   return_valuet   side_effectR   R3   R	   R   (   R   R   R   t   get_returnst
   set_effectt   GETR,   R4   (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyR'   N   s    		&N(   t   __name__t
   __module__R   R%   R-   R/   R5   R7   R>   R   R.   R'   (    (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyR   (   s   		t   test_restart_statec           B@  s   e  Z d  „  Z d „  Z RS(   c         C@  sI   t  d d ƒ } d | _ | j ƒ  |  j | j ƒ  | j ƒ  Wd  QXd  S(   Nid   i   ic   (   R   t   Rt   stept   assertRaisest   RestartFreqExceeded(   R   t   s(    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_raises^   s
    	
c         C@  s‰   t  d d ƒ } d t ƒ  | _ | _ |  j | j ƒ  | j ƒ  Wd  QXd t ƒ  | _ | _ | j t ƒ  d ƒ |  j | j d ƒ d  S(   Nid   i
   i   i   (   R   R   RG   t   TRI   RJ   RH   R    (   R   RK   (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   test_time_passed_resets_countere   s    (   RD   RE   RL   RN   (    (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyRF   \   s   	(   t
   __future__R    R!   R   R   t
   contextlibR   R   t   noseR   t   billiard.commonR   R   R   t   utilsR   t   unittest.mockR   R	   R
   t   ImportErrort   mockR   R   R   RF   (    (    (    s<   /tmp/pip-unpacked-wheel-40MfcW/billiard/tests/test_common.pyt   <module>   s      	4