ó
P'—^c           @@  sê  d  d l  m 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	 d  d l
 m Z d  d l m Z d  d	 l m Z m Z m Z m Z m Z d  d
 l m Z d  d l m Z d  d l m Z m Z m Z y e d ƒ Wn e k
 re Z n
 Xd „  Z d e f d „  ƒ  YZ  d e  f d „  ƒ  YZ! d e  f d „  ƒ  YZ" d e  f d „  ƒ  YZ# d d d „ Z% d e  f d „  ƒ  YZ& d e  f d „  ƒ  YZ' d e f d „  ƒ  YZ( d e f d „  ƒ  YZ) d  e f d! „  ƒ  YZ* d S("   i    (   t   absolute_importN(   t   Decimal(   t   shuffle(   t   time(   t   count(   t   states(   t   Event(   t   Statet   Workert   Taskt   HEARTBEAT_EXPIRE_WINDOWt   HEARTBEAT_DRIFT_MAX(   t   range(   t   uuid(   t   AppCaset   Mockt   patchgÍÌÌÌÌÌ@c         C@  s   |  S(   N(    (   t   f(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   _float_to_decimal   s    t   replayc           B@  sM   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e Z d „  Z d „  Z	 RS(   c         C@  s*   | |  _  |  j ƒ  |  j ƒ  d |  _ d  S(   Ni    (   t   statet   rewindt   setupt   current_clock(   t   selfR   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   __init__#   s    	

c         C@  s   d  S(   N(    (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   )   s    c         C@  se   |  j  t |  j ƒ } | d | d <y | d |  _ Wn) t k
 r` |  j d | d <|  _ n X| S(   Nt	   timestampt   local_receivedt   clocki   (   t   eventst   nextt   positionR   t   KeyError(   R   t   ev(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt
   next_event,   s    c         C@  s   |  S(   N(    (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   __iter__5   s    c         C@  s;   y |  j  j |  j ƒ  ƒ Wn t k
 r6 t ƒ  ‚ n Xd  S(   N(   R   t   eventR"   t
   IndexErrort   StopIteration(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   __next__8   s    c         C@  s   t  d ƒ |  _ |  S(   Ni    (   R   R   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   ?   s    c         C@  s   x |  D] } q Wd  S(   N(    (   R   t   _(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   playC   s    (
   t   __name__t
   __module__R   R   R"   R#   R'   R   R   R)   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   !   s   							t   ev_worker_online_offlinec           B@  s   e  Z d  „  Z RS(   c         C@  s+   t  d d d ƒt  d d d ƒg |  _ d  S(   Ns   worker-onlinet   hostnamet   utest1s   worker-offline(   R   R   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   J   s    (   R*   R+   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR,   H   s   t   ev_worker_heartbeatsc           B@  s   e  Z d  „  Z RS(   c         C@  s<   t  d d d d t ƒ  t d ƒt  d d d ƒg |  _ d  S(   Ns   worker-heartbeatR-   R.   R   i   (   R   R   R
   R   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   S   s    (   R*   R+   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR/   Q   s   t   ev_task_statesc           B@  s   e  Z d  „  Z RS(   c         C@  sÝ   t  ƒ  } |  _ t d d | d d d d d d d	 d
 d d  d d ƒt d d | d d ƒt d d | d d ƒt d d | d d d d d d ƒt d d | d d d d d d ƒt d d | d d d d d d ƒg |  _ d  S(   Ns   task-receivedR   t   namet   task1t   argss   (2, 2)t   kwargss   {'foo': 'bar'}t   retriesi    t   etaR-   R.   s   task-starteds   task-revokeds   task-retriedt	   exceptions   KeyError('bar')t	   tracebacks   line 2 at mains   task-faileds   KeyError('foo')s   line 1 at mains   task-succeededt   resultt   4t   runtimegóŽSt$—¿?(   R   t   tidR   t   NoneR   (   R   R<   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   ]   s    (   R*   R+   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR0   [   s   c         C@  s:   t  d j |  ƒ d | d | d | d | d | p6 t ƒ  ƒS(   s   Quick task event.s   task-{0}R   R-   R   R1   R   (   R   t   formatR   (   t   typeR   R-   R   R1   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   QTEVn   s    t   ev_logical_clock_orderingc           B@  s5   e  Z d  d d „ Z d „  Z d „  Z d d „ Z RS(   i    c         C@  s;   | p	 d |  _  |  j | ƒ |  _ t t |  ƒ j | ƒ d  S(   Ni    (   t   offsett   setuidst   uidst   superRA   R   (   R   R   RB   RD   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   v   s    c         C@  s8   | p t  ƒ  t  ƒ  t  ƒ  g } \ |  _ |  _ |  _ | S(   N(   R   t   tAt   tBt   tC(   R   RD   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRC   {   s    4c         C@  sœ  |  j  } |  j \ } } } t d | d d d d | d ƒt d | d d d d | d ƒt d	 | d d d d | d
 ƒt d | d d d d | d
 ƒt d	 | d d d d | d ƒt d | d d d d | d ƒt d | d d d d | d ƒt d	 | d d d d | d ƒt d | d d d d | d ƒt d | d d d d | d ƒt d	 | d d d d | d ƒt d | d d d d | d ƒg |  _ d  S(   Nt   receivedt   w1R1   RF   R   i   t   w2RG   t   startedi   RH   i   t   retriedi   t	   succeededi	   i
   t   w3i   t   succededi   i   t   TAi   (   RB   RD   R@   R   (   R   RB   RF   RG   RH   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR      s    	c         C@  s<   | |  _  |  j | p |  j ƒ |  _ |  j ƒ  |  j ƒ  d  S(   N(   RB   RC   RD   R   R   (   R   RB   RD   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   rewind_with_offset‘   s    	
N(   R*   R+   R=   R   RC   R   RR   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRA   t   s   		t   ev_snapshotc           B@  s   e  Z d  „  Z RS(   c      
   C@  sª   t  d d d ƒt  d d d ƒt  d d d ƒg |  _ xm t d ƒ D]_ } | d rZ d p] d } | d rq d pt d	 } |  j j t  d
 d | d t ƒ  d | ƒƒ qC Wd  S(   Ns   worker-onlineR-   R.   t   utest2t   utest3i   i   t   task2R2   s   task-receivedR1   R   (   R   R   R   t   appendR   (   R   t   it   workerR?   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR   š   s    (   R*   R+   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRS   ˜   s   t   test_Workerc           B@  s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@  sÀ   |  j  t d d ƒ j d ƒ |  j  t d d ƒ t d d ƒ ƒ |  j t d d ƒ t d d ƒ ƒ |  j  t t d d ƒ ƒ t t d d ƒ ƒ ƒ |  j t t d d ƒ ƒ t t d d ƒ ƒ ƒ d  S(   NR-   t   foot   bar(   t   assertEqualR   R-   t   assertNotEqualt   hash(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_equality©   s    (c      	   C@  s€   t  d ƒ } t t t ƒ  ƒ ƒ t ƒ  } } | j d | | d i d d 6| d 6| d 6t t d ƒ ƒ d 6ƒ|  j | j ƒ d  S(	   Ns   george@vandelay.coms   worker-onlinet   fieldsR-   R   R   gm¼…¿ˆ@t   freq(   R   R   R   R   R$   t
   assertTruet   alive(   R   t   wR   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_compatible_with_Decimal¸   s    c         C@  s3   t  d d ƒ } | j d ƒ |  j | j g  ƒ d  S(   NR-   R[   t	   heartbeat(   R   R$   R]   t
   heartbeats(   R   RY   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_survives_missing_timestampÃ   s    c         C@  s    |  j  t t d d ƒ ƒ ƒ d  S(   NR-   R[   (   Rc   t   reprR   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt	   test_reprÈ   s    c      	   C@  st   t  d d ƒ } t d ƒ S } | j d  t ƒ  t d t ƒ  ƒ |  j | j ƒ |  j d | j	 d d ƒ Wd  QXd  S(   NR-   R[   s   celery.events.state.warni   s   Substantial drifti    (
   R   R   R$   R=   R   R   Rc   t   calledt   assertInt	   call_args(   R   RY   t   warn(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_drift_warningË   s
    !c         C@  sŸ   t  d d ƒ } | j d  t ƒ  t ƒ  ƒ |  j t | j ƒ d ƒ | j d } | j d  t ƒ  t ƒ  d ƒ |  j t | j ƒ d ƒ |  j | j d | ƒ d  S(   NR-   R[   i   i    i
   i   iÿÿÿÿ(   R   R$   R=   R   R]   t   lenRh   (   R   RY   t   h1(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_updates_heartbeatÒ   s    (   R*   R+   R`   Rf   Ri   Rk   Rp   Rs   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRZ   §   s   					t	   test_Taskc           B@  s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@  sÀ   |  j  t d d ƒ j d ƒ |  j  t d d ƒ t d d ƒ ƒ |  j t d d ƒ t d d ƒ ƒ |  j  t t d d ƒ ƒ t t d d ƒ ƒ ƒ |  j t t d d ƒ ƒ t t d d ƒ ƒ ƒ d  S(   NR   R[   R\   (   R]   R	   R   R^   R_   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyR`   Þ   s    (c      !   C@  s7  t  d d d d d d d d d	 d
 d d d d d d d d d d  d d d t ƒ  d d t ƒ  d d d d d d t ƒ  ƒ } |  j t t | j ƒ ƒ t | j ƒ  j ƒ  ƒ ƒ |  j t t | j d ƒ ƒ t | j d d ƒ ƒ ƒ |  j t d d g ƒ t | j d d g ƒ j ƒ  ƒ ƒ |  j	 t | j d ƒ ƒ ƒ d  S(   NR   t   abcdefgR1   s	   tasks.addR3   s   (2, 2)R4   s   {}R5   i   R9   i*   R6   i   R;   g-Cëâ6?t   expiresR[   R7   RI   i
   RL   i   t   exchanget   celeryt   routing_keyRN   t   extra(   RI   (   RI   (
   R	   R=   R   R]   t   sortedt   listt   _info_fieldst   infot   keyst   assertFalse(   R   t   task(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt	   test_infoí   s.    "c         C@  sk   t  d d d d ƒ } | j d t ƒ  t ƒ  ƒ |  j | j ƒ | j d t ƒ  t ƒ  ƒ |  j | j ƒ d  S(   NR   Ru   R1   s	   tasks.addRI   RN   (   R	   R$   R   R€   t   readyRc   (   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt
   test_ready  s    	c         C@  sH   t  d d d d ƒ } | j d t ƒ  t ƒ  ƒ |  j | j t j ƒ d  S(   NR   Ru   R1   s	   tasks.addt   sent(   R	   R$   R   R]   R   R   t   PENDING(   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt	   test_sent  s    	c         C@  sÔ   t  ƒ  } | j d t ƒ  t ƒ  ƒ | j d t ƒ  t ƒ  ƒ | j d t ƒ  t ƒ  i d d 6d	 d 6ƒ |  j | j t j ƒ |  j | j d ƒ |  j | j	 d
 ƒ | j d t ƒ  t ƒ  ƒ |  j | j t j
 ƒ d  S(   Nt   failedRL   RI   s	   tasks.addR1   i   R3   RM   (   i   i   (   i   i   (   R	   R$   R   R]   R   R   t   FAILURER1   t   assertTupleEqualR3   t   RETRY(   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt
   test_merge  s    	c         C@  s&   |  j  t t d d d d ƒ ƒ ƒ d  S(   NR   t   xxxR1   s	   tasks.add(   Rc   Rj   R	   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRk   #  s    (   R*   R+   R`   R‚   R„   R‡   RŒ   Rk   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRt   Ü   s   					t
   test_Statec           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 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@  s   |  j  t t ƒ  ƒ ƒ d  S(   N(   Rc   Rj   R   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRk   )  s    c         C@  s&   |  j  t j t j t ƒ  ƒ ƒ ƒ d  S(   N(   Rc   t   picklet   loadst   dumpsR   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_pickleable,  s    c         C@  sC  t  ƒ  } t | ƒ } | j \ } } } | j ƒ  t | j ƒ  ƒ } |  j | d d | ƒ |  j | d d | ƒ |  j | d d | ƒ xW t d ƒ D]I } t | j ƒ | j \ } } } | j	 | j
 d | j ƒ | j ƒ  q˜ Wt | j ƒ  ƒ } |  j | d d | ƒ |  j | d d | ƒ |  j | d d | ƒ d  S(   Ni    i   i   iè  (   R   RA   RD   R)   R|   t   tasks_by_timeR]   R   R   RR   R   (   R   R   t   rRF   RG   RH   t   nowR(   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt    test_task_logical_clock_ordering/  s"    	
c         C@  s‡   t  t ƒ  ƒ } t | ƒ |  j | j j ƒ  ƒ |  j | j j d j ƒ | j ƒ  |  j	 | j j ƒ  ƒ |  j	 | j j d j ƒ d  S(   NR.   (
   R,   R   R   Rc   R   t   alive_workerst   workersRd   R)   R€   (   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_worker_online_offlineB  s    

c         C@  sZ   t  ƒ  } i d d 6d d 6d d 6d d 6| _ |  j t t | j d d ƒ ƒ ƒ d ƒ d  S(   Nt   at   bt   ct   dt   limiti   (   R   t   tasksR]   Rq   R|   t	   itertasks(   R   t   s(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_itertasksK  s    	%c         C@  s‡   t  t ƒ  ƒ } t | ƒ |  j | j j ƒ  ƒ |  j | j j d j ƒ | j ƒ  |  j	 | j j ƒ  ƒ |  j	 | j j d j ƒ d  S(   NR.   (
   R/   R   R   R€   R   R—   R˜   Rd   R)   Rc   (   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_worker_heartbeat_expireP  s    

c         C@  sù  t  t ƒ  ƒ } t | ƒ |  j | j | j j k ƒ | j j | j } |  j | j t j	 ƒ |  j | j
 ƒ |  j | j | j
 ƒ |  j | j j d ƒ t | ƒ |  j | j j d j d ƒ |  j | j t j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j j d ƒ t | ƒ |  j | j t j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j j d ƒ t | ƒ |  j | j t j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j j d ƒ |  j | j d ƒ |  j | j d ƒ t | ƒ |  j | j t j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j j d ƒ |  j | j d ƒ |  j | j d ƒ t | ƒ |  j | j t j ƒ |  j | j ƒ |  j | j | j ƒ |  j | j j d ƒ |  j | j d ƒ |  j | j d ƒ d  S(	   NR.   s$   any task event adds worker heartbeats   KeyError('bar')s   line 2 at mains   KeyError('foo')s   line 1 at mainR:   góŽSt$—¿?(   R0   R   R   Rc   R<   R   RŸ   R]   R   t   RECEIVEDRI   R   RY   R-   R˜   Rd   t   STARTEDRL   t   REVOKEDt   revokedR‹   RM   R7   R8   R‰   Rˆ   t   SUCCESSRN   R9   R;   (   R   R”   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_task_statesY  sR    





c         C@  sD   |  j  | j ƒ |  j  | j ƒ |  j  | j ƒ |  j  | j ƒ d  S(   N(   R€   RŸ   R˜   t   event_countt
   task_count(   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   assertStateEmpty  s    c         C@  sD   |  j  | j ƒ |  j  | j ƒ |  j  | j ƒ |  j  | j ƒ d  S(   N(   Rc   RŸ   R˜   Rª   R«   (   R   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   assertState–  s    c         C@  s‘   t  ƒ  } t | ƒ } | j ƒ  d „  } | j | d t ƒ|  j | j ƒ t  ƒ  } t | ƒ } | j ƒ  | j | d t ƒ|  j | j ƒ d  S(   Nc           S@  s   d  S(   N(    (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   work¡  s    t   clear_after(	   R   RS   R)   t   freeze_whilet   TrueR€   Rª   t   FalseRc   (   R   R¡   R”   R®   t   s2(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_freeze_whileœ  s    	
		
c         C@  sS   t  ƒ  } t | ƒ } | j ƒ  |  j | j ƒ | j d t ƒ |  j | j ƒ d  S(   NRƒ   (   R   RS   R)   Rc   RŸ   t   clear_tasksR²   R€   (   R   R¡   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_clear_tasks­  s    	
c         C@  så   t  t ƒ  ƒ } | j ƒ  |  j | j j ƒ |  j | j j ƒ |  j | j j ƒ |  j | j j ƒ | j j	 ƒ  |  j
 | j j ƒ |  j
 | j j ƒ |  j | j j ƒ |  j
 | j j ƒ | j j	 t ƒ |  j
 | j j ƒ d  S(   N(   RS   R   R)   Rc   R   Rª   R˜   RŸ   R«   t   clearR€   R²   (   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt
   test_clearµ  s    
c         C@  sB   t  t ƒ  ƒ } | j ƒ  |  j t | j j ƒ  ƒ d d g ƒ d  S(   NR2   RV   (   RS   R   R)   R]   R{   R   t
   task_types(   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_task_typesÆ  s    
c         C@  sB   t  t ƒ  ƒ } | j ƒ  |  j t t | j j ƒ  ƒ ƒ d ƒ d  S(   Ni   (   RS   R   R)   R]   Rq   R|   R   t   tasks_by_timestamp(   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_tasks_by_timestampË  s    
c         C@  sm   t  t ƒ  ƒ } | j ƒ  |  j t t | j j d ƒ ƒ ƒ d ƒ |  j t t | j j d ƒ ƒ ƒ d ƒ d  S(   NR2   i
   RV   (   RS   R   R)   R]   Rq   R|   R   t   tasks_by_type(   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_tasks_by_typeÐ  s    
(c         C@  s<   t  t ƒ  ƒ } | j ƒ  |  j t | j j ƒ  ƒ d ƒ d  S(   Ni   (   RS   R   R)   R]   Rq   R   R—   (   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_alive_workersÖ  s    
c         C@  sm   t  t ƒ  ƒ } | j ƒ  |  j t t | j j d ƒ ƒ ƒ d ƒ |  j t t | j j d ƒ ƒ ƒ d ƒ d  S(   NR.   i
   RT   (   RS   R   R)   R]   Rq   R|   R   t   tasks_by_worker(   R   R”   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_tasks_by_workerÛ  s    
(c         C@  sJ   t  ƒ  } | j i d d 6d d 6ƒ | j i d d 6d d 6d d 6ƒ d  S(   Ns   worker-unknown-event-xxxR?   R\   R[   R   R-   (   R   R$   (   R   R¡   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt"   test_survives_unknown_worker_eventá  s    			c         C@  s¶   t  d t d d ƒ ƒ } | j i d d 6d d 6t ƒ  d 6t ƒ  d 6d	 d
 6ƒ \ \ } } } |  j | t d ƒ ƒ |  j | ƒ |  j | d ƒ |  j d | j ƒ | j	 j
 | ƒ d  S(   Nt   on_node_leaveR1   s   worker-offlineR?   s   unknown@vandelay.comR-   R   R   IñÐA
É R   t   offline(   R   R   R$   R   R]   R   R€   t   assertNotInR˜   RÃ   t   assert_called_with(   R   R¡   RY   t   createdt   subject(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt$   test_survives_unknown_worker_leavingí  s    	

c         C@  s­   t  d t d d ƒ ƒ } | j i d d 6d d 6t ƒ  d 6t ƒ  d 6d	 d
 6ƒ \ \ } } } |  j | ƒ |  j | ƒ |  j | d ƒ |  j d | j ƒ | j j	 | ƒ d  S(   Nt   on_node_joinR1   s   worker-onlineR?   s   george@vandelay.comR-   R   R   i
†  R   t   online(
   R   R   R$   R   Rc   R]   Rm   R˜   RÊ   RÆ   (   R   R¡   RY   RÇ   RÈ   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_on_node_join_callbackü  s    	

c         C@  sQ   t  ƒ  } | j i d d 6d d 6d d 6d d 6t ƒ  d	 6t ƒ  d
 6d d 6ƒ d  S(   Ns   task-unknown-event-xxxR?   R\   R[   t   xR   t   yR-   R   R   i    R   (   R   R$   R   (   R   R¡   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt    test_survives_unknown_task_event  s    	

c         C@  se  t  d d ƒ } d | _ | j i d d 6d d 6d d	 6d
 d 6d d 6t ƒ  d 6t ƒ  d 6ƒ | j i d d 6d d 6d
 d	 6d
 d 6d d 6t ƒ  d 6t ƒ  d 6ƒ | j i d d 6d d 6d d	 6d
 d 6d d 6t ƒ  d 6t ƒ  d 6ƒ |  j t | j ƒ d ƒ |  j | j d j d ƒ |  j | j d j d ƒ | j j | j d ƒ |  j	 t
 | j ƒ  ƒ ƒ d  S(   Nt   max_tasks_in_memoryi   i   s   task-unknown-event-xxxR?   R\   R[   RÍ   R   RÎ   R-   i   R   R   R   i   t   zi   i    (   R   t   heap_multiplierR$   R   R]   Rq   t	   _taskheapR   RW   Rc   R|   R“   (   R   R¡   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_limits_maxtasks  s>    		
	
	
c         @  sR   i  ‰  ‡  f d †  } t  d | ƒ } | j i d d 6ƒ |  j ˆ  j d ƒ ƒ d  S(   Nc         @  s   t  ˆ  d <d  S(   Nt   recv(   R±   (   R   R$   (   t   scratch(    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   callbackA  s    R×   s   worker-onlineR?   RÕ   (   R   R$   Rc   t   get(   R   R×   R¡   (    (   RÖ   s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   test_callback>  s
    (   R*   R+   Rk   R’   R–   R™   R¢   R£   R©   R¬   R­   R´   R¶   R¸   Rº   R¼   R¾   R¿   RÁ   RÂ   RÉ   RÌ   RÏ   RÔ   RÙ   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyRŽ   '  s.   									7															%(+   t
   __future__R    R   t   decimalR   t   randomR   R   t	   itertoolsR   Rx   R   t   celery.eventsR   t   celery.events.stateR   R   R	   R
   R   t   celery.fiveR   t   celery.utilsR   t   celery.tests.caseR   R   R   t	   TypeErrort   strR   t   objectR   R,   R/   R0   R=   R@   RA   RS   RZ   Rt   RŽ   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/events/test_state.pyt   <module>   s4   (
	'	
$5K