σ
P'^c           @@  s¬   d  d l  m Z d  d l Z d  d l Z d  d l j j Z d  d l m Z m	 Z	 m
 Z
 d  d l m Z d e f d     YZ d e f d     YZ d	 e f d
     YZ d S(   i    (   t   absolute_importN(   t   Caset   Mockt   patch(   t   redirect_stdoutst
   test_Entryc           B@  s#   e  Z d    Z d   Z d   Z RS(   c         @  sV   d  g   d   f d  } t j | d i d d 6 } |   |  j   d d  d  S(	   Nt   fooc         @  s   |  | | f   d <d  S(   Ni    (    (   t   xt   yt   moo(   t   scratch(    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   timed   s    i   t   bazR	   i    (   i   i   (   i   i   R   (   t   Nonet   timer2t   Entryt   assertTupleEqual(   t   selfR   t   tref(    (   R
   s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt	   test_call   s
    	c         C@  s6   t  j d   d i   } | j   |  j | j  d  S(   Nc         S@  s   |  S(   N(    (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   <lambda>   t    i   (   i   (   R   R   t   cancelt
   assertTruet	   cancelled(   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_cancel   s    
c         C@  s,   t  j d   i   } |  j t |   d  S(   Nc         S@  s
   |  d  S(   Ni   (    (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR      R   (   R   R   R   t   repr(   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt	   test_repr   s    (   t   __name__t
   __module__R   R   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR      s   		t   test_Schedulec           B@  s   e  Z d    Z d   Z RS(   c         C@  sP   t  j   } | j   t   } | j |  | j j   |  j | j |  d  S(   N(   R   t   Schedulet   stopR   R   t   assert_called_witht   assertIst   schedule(   R   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_supports_Timer_interface%   s    
	c         @  s  d d l  m  } d  g     f d   } t j d |  } t d  ­ } t   | _ | j t j d   d
 i   d | j	   | j t j d   d i   d d  d  | _
 |  j t  0 | j t j d	   d i   d | j	   Wd  QXWd  QX  d } |  j | t  d  S(   Ni    (   t   datetimec         @  s   |    d <d  S(   Ni    (    (   t   exc_info(   R
   (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   on_error3   s    R'   s   kombu.async.timer.to_timestampc           S@  s   d  S(   N(   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR   :   R   t   etac           S@  s   d  S(   N(   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR   <   R   c           S@  s   d  S(   N(   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR   ?   R   (    (    (    (   R%   R   R   R   R   t   OverflowErrort   side_effectt   enter_atR   t   nowR'   t   assertRaisest   assertIsInstance(   R   R%   R'   t   st   tott   exc(    (   R
   s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_handle_error/   s    	%	
(   R   R   R$   R2   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR   #   s   	
t
   test_Timerc           B@  s   e  Z d    Z d   Z d   Z d   Z e d  d    Z e d    Z	 e d  d    Z
 d	   Z d
   Z d   Z d   Z d   Z RS(   c         @  s   t  j   } zu t g     f d   } | j d |  d } x@   d s | d k re t d   n  t j d  | d 7} q@ WWd  | j   Xd  S(   Nc           @  s   t    d <d  S(   Ni    (   t   True(    (   t   done(    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   set_doneL   s    g333333Σ?i    g       @s   test timed outgΉ?(   R   t   Timert   Falset
   call_aftert	   Exceptiont   timet   sleepR    (   R   t   tR6   t   mss(    (   R5   s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_enter_afterG   s    	c         C@  sH   t  j   } t   | _ | j d d d | j j d t j d  d  S(   Ng333333Σ?t   priorityi
   (   R   R7   R   R9   t
   exit_afterR!   t   syst   exit(   R   R=   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_exit_afterY   s    c         C@  sB   t  j   } t | _ t   | _ | j   |  j | j j  d  S(   N(	   R   R7   R4   t   runningR   t   startt   ensure_startedt   assertFalset   called(   R   R=   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_ensure_started_not_started_   s
    	
c   
      C@  s%  t  j   } zt   | j _ t   } d | _ | j d |  |  j | j j j d  | j j j	 d \ } } | \ } } } |  j | d  |   |  j | j j j d  | j j j	 d \ } } | \ } }	 } |  j | d  t
 |	 _ |	   |  j | j j j d  Wd  | j   Xd  S(   Nt   myfungΈλQΈ?i   i    i   (   R   R7   R   R#   t   enter_afterR   t   call_repeatedlyt   assertEqualt
   call_countt   call_args_listR4   R   R    (
   R   R=   RK   t   args1t   _t   sec1t   tref1t   args2t   sec2t   tref2(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_call_repeatedlyf   s&    			s   kombu.async.timer.loggerc         C@  sT   t  j   } d  | j _ t   } t   | _ | j j |  |  j	 | j
 j  d  S(   N(   R   R7   R   R#   R'   R   t
   ValueErrorR*   t   apply_entryR   t   errorRI   (   R   t   loggerR=   t   fun(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_apply_entry_error_handled   s    	c         C@  sa   t  j   } t   | j _ t   } t   | _ | j j |  | j   |  j	 | j
    d  S(   N(   R   R7   R   R#   R'   RY   R*   RZ   R!   RH   t   getvalue(   R   t   stdoutt   stderrR=   R]   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt"   test_apply_entry_error_not_handled   s    	
s   os._exitc         C@  sE   t  j   } t   | _ t d  | j _ | j   | j d  d  S(   Ni   i   (   R   R7   R   t   _next_entryt   OSErrorR*   t   runR!   (   R   t   _exitR=   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_thread_crash   s
    
c         C@  sX   t  j   } t   | j _ t   | j j _ | j j   | j   | j j j	   d  S(   N(
   R   R7   R   t   _is_stoppedt   sett	   TypeErrorR*   t   _is_shutdownRe   R!   (   R   R=   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_gc_race_lost   s    
c         C@  s   |  j  t j d  d  d  S(   Ng
Χ£p=
	@(   R"   R   t   to_timestamp(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_to_timestamp§   s    c         C@  sT   t  j   } t   | _ t   } | j | d d  | j j d | d d d d  S(   Ni   i    R+   R@   (   R   R7   R   t	   _do_entert   enterR!   (   R   R=   t   e(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_test_enterͺ   s
    	c         C@  s6   t  j   } t   | _ | j   | j j d  d  S(   NRL   (   R   R7   R   Ro   RL   R!   (   R   R=   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   test_test_enter_after±   s    
c         C@  s3   t  j   } t   } | j |  | j j   d  S(   N(   R   R7   R   R   R!   (   R   R=   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR   ·   s    	(   R   R   R?   RD   RJ   RX   R   R^   R   Rb   Rg   Rl   Rn   Rr   Rs   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyR3   E   s   									(   t
   __future__R    RB   R;   t   celery.utils.timer2t   utilsR   t   celery.tests.caseR   R   R   t   kombu.tests.caseR   R   R   R3   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/utils/test_timer2.pyt   <module>   s   "