
P'^c           @@ s  d  d l  m Z m Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z d  d l	 m
 Z
 d  d l m Z d  d l m Z d  d l m Z 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 d  d l m Z d  d l m Z m  Z  m! Z! d  d l" m# Z# m$ Z$ 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/ m0 Z0 d  d l' m1 Z1 d  d l2 m3 Z3 d  d l4 m5 Z5 d  d l6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; e< d  Z= d   Z> d e? f d     YZ@ d   ZA d e. f d     YZ- d  e- f d!     YZB d" e- f d#     YZC d$ e? f d%     YZD d& e? f d'     YZE d( e? f d)     YZF d*   ZG d+ e7 f d,     YZH d- e7 f d.     YZI d S(/   i    (   t   absolute_importt   print_functionN(   t   deque(   t   datetimet	   timedelta(   t   Event(   t   ChannelError(   t
   Connection(   t   QoSt   ignore_errors(   t   Message(   t   DEFAULTS(   t   RUNt   CLOSEt   StartStopStep(   t   BasePool(   t   AttributeDict(   t   WorkerShutdownt   WorkerTerminatet   TaskRevokedError(   t   Emptyt   ranget   Queue(   t   uuid(   t
   components(   t   consumer(   t   Consumer(   t   Request(   t   worker_direct(   t   pickle(   t   Timer(   t   AppCaset   Mockt   SkipTestt   patcht   restore_loggingc         C@ sM   |  d  k r t   n |  }  t   |  _ d |  j _ d t |   f |  _ |  S(   Nt   MockNSs   MockStep(%s)(   t   NoneR    t	   blueprintt   namet   id(   t   step(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   MockStep#   s
    c          C@ s+   t  d d  }  d g |  _ t   |  _ |  S(   NR'   t   event_dispatchert   worker(   R    t   groupsR   t   _outbound_buffer(   t   evd(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   mock_event_dispatcher+   s    t   PlaceHolderc           B@ s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR1   2   s   c         C@ s   |  j  j | j S(   N(   R&   t   stepsR'   (   t   objt   typ(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt	   find_step6   s    R   c           B@ s   e  Z d    Z RS(   c         O@ sM   | j  d t  | j  d t  | j  d t  t t |   j | |   d  S(   Nt   without_minglet   without_gossipt   without_heartbeat(   t
   setdefaultt   Truet   superR   t   __init__(   t   selft   argst   kwargs(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR>   <   s    (   R2   R3   R>   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   :   s   t   _MyKombuConsumerc           B@ s,   e  Z e   Z e   Z d    Z d   Z RS(   c         O@ s3   | j  d t d   t t |   j | |   d  S(   Nt   pooli   (   R;   R   R=   RB   R>   (   R?   R@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR>   G   s    c         C@ s   d  |  _ d  S(   N(   R%   t   heart(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   restart_heartbeatK   s    (   R2   R3   R    t   broadcast_consumert   task_consumerR>   RE   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRB   C   s   			t   MyKombuConsumerc           B@ s   e  Z d    Z RS(   c         O@ s   d  S(   N(    (   R?   R@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   loopQ   s    (   R2   R3   RI   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRH   O   s   t   MockNodec           B@ s   e  Z g  Z d    Z RS(   c         C@ s    |  j  j | j d d    d  S(   Nt   command(   t   commandst   appendt   popR%   (   R?   t   bodyt   message(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   handle_messageX   s    (   R2   R3   RL   RQ   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRJ   U   s   t   MockEventDispatcherc           B@ s;   e  Z g  Z e Z e Z g  Z d    Z d   Z d   Z	 RS(   c         O@ s   |  j  j |  d  S(   N(   t   sentRM   (   R?   t   eventR@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   sendb   s    c         C@ s   t  |  _ d  S(   N(   R<   t   closed(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   closee   s    c         C@ s   t  |  _ d  S(   N(   R<   t   flushed(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   flushh   s    (
   R2   R3   RS   t   FalseRV   RX   R.   RU   RW   RY   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRR   \   s   		t	   MockHeartc           B@ s   e  Z e Z d    Z RS(   c         C@ s   t  |  _ d  S(   N(   R<   RV   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   stopo   s    (   R2   R3   RZ   RV   R\   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR[   l   s   c         K@ si   | j  d t    t   |  _ t |  d t j t |    d d d d d i d d	 6} d g | _ | S(
   NR(   RO   t   content_types   application/x-python-serializet   content_encodingt   binaryt   delivery_infot   mockt   consumer_tag(	   R;   R   t   sett   no_ack_consumersR
   R   t   dumpst   dictt   accept(   t   channelt   datat   m(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   create_messages   s    t   test_Consumerc           B@ s  e  Z d    Z d   Z d   Z d   Z d   Z d   Z e d  d    Z	 e d  d	    Z
 e d
  d    Z e d  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 e d  e d  d     Z d   Z d   Z d   Z d    Z e d!  e d"  d#     Z d$   Z  d%   Z! d&   Z" RS('   c         C@ sC   t    |  _ t   |  _ |  j j d t  d    } | |  _ d  S(   Nt   sharedc         S@ s   |  | | S(   N(    (   t   xt   yt   z(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   foo_task   s    (   t	   FastQueuet   bufferR   t   timert   appt   taskRZ   Rq   (   R?   Rq   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   setup   s    c         C@ s   |  j  j   d  S(   N(   Rt   R\   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   teardown   s    c         C@ s   t  |  j j d |  j d |  j } t   | _ t | j j d  | _ t   | _	 i d d 6| j	 j
 _ | j j   | _ t   | j _ t   t   g | j j j
 _ | | j _ | j j   } |  j | d d  |  j | d  d  S(   NRt   Ru   i
   t   bart   foot   prefetch_countt   broker(   RH   Rs   t   putRt   Ru   R    RG   R   t   qost
   connectiont   infot   return_valuet   WorkControllert
   controllerRC   R   t   statst   assertEqualt
   assertTrue(   R?   t   lR   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt	   test_info   s    $c         C@ s>   t  |  j j d |  j d |  j } t | j _ | j   d  S(   NRt   Ru   (	   RH   Rs   R}   Rt   Ru   R   R&   t   statet   start(   R?   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start_when_closed   s    $c         C@ s  t  |  j j d |  j d |  j } | j j |  |  j | j t	  t
 | j _ d  | _ | j j |  |  j | j  t
 | j _ | j   |  j | j  |  j | j  | j j |  |  j | j t	  | j j |  | j   | j   |  j | j  |  j | j  d  S(   NRt   Ru   (   RH   Rs   R}   Rt   Ru   R&   R   t   assertIsInstanceR   R   R   R   R%   R+   t   restartR   t   shutdownt   assertIsNoneRG   R\   (   R?   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_connection   s$    $	


c         C@ s@  t  |  j j d |  j d |  j } t | j _ t | t	 j
  } t   } | _ | j |  |  j | j j  |  j | j  t  |  j j d |  j d |  j } t   } | _ t | _ t   } | _ t | j _ t | t	 j  } | j |  t | t	 j  } | j |  |  j | j j  |  j | j  d  S(   NRt   Ru   (   RH   Rs   R}   Rt   Ru   R   R&   R   R7   R   R   R    R   R   R   RW   t   calledR   R0   R+   R<   t   enabledR[   RD   t   Eventst   Heartt
   call_countRV   (   R?   R   R)   t   connt   eventerRD   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_close_connection   s$    $$	s   celery.worker.consumer.warnc         C@ s   t  |  j j d |  j d |  j } t | j _ | j j	   t
   } t | d i d d 6} t   | _ t   | _ |  j |  } | | j   |  |  j | j  d  S(   NRt   Ru   t   unknowns   !!!t   baz(   RB   Rs   R}   Rt   Ru   R   R&   R   R4   RN   R    Rk   R0   R+   RJ   t   nodet   _get_on_messaget   decodeR   R   (   R?   t   warnR   t   backendRj   t   callback(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_receive_message_unknown   s    $	s#   celery.worker.strategy.to_timestampc      
   C@ s   t    | _ t |  j j d |  j d |  j } t | j _	 | j
 j   t t   d |  j j d d d i  d t j   j   } t   | _ t   | _ | j   t   | _ |  j |  } | | j   |  |  j | j  d  S(   NRt   Ru   Rv   R@   s   2, 2RA   t   eta(   t   OverflowErrort   side_effectRB   Rs   R}   Rt   Ru   R   R&   R   R4   RN   Rk   R    Rq   R'   R   t   nowt	   isoformatR0   R+   RJ   R   t   update_strategiesR~   R   R   R   t   acknowledged(   R?   t   to_timestampR   Rj   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt&   test_receive_message_eta_OverflowError   s    $
s   celery.worker.consumer.errorc      
   C@ s   t  |  j j d |  j d |  j } t | j _ t   | _	 | j
 j   t t   d |  j j d d d d d	 d } | j   t   | _	 |  j |  } | | j   |  |  j d
 | j d d  d  S(   NRt   Ru   Rv   R@   i   i   RA   t	   foobarbazR(   s   Received invalid task messagei    (   i   i   (   RB   Rs   R}   Rt   Ru   R   R&   R   R0   R+   R4   RN   Rk   R    Rq   R'   R   R   R   t   assertInt	   call_args(   R?   t   errorR   Rj   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt%   test_receive_message_InvalidTaskError   s    $
s   celery.worker.consumer.critc         C@ s   t  |  j j d |  j d |  j } d t f d     Y} |   } | j | t d   |  j | j	 j
  |  j d | j d d  d  S(   NRt   Ru   t   MockMessagec           B@ s   e  Z d  Z d Z d Z RS(   s   application/x-msgpackR_   R   (   R2   R3   R]   R^   RO   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR     s   Rz   s   Can't decode message bodyi    (   R   Rs   R}   Rt   Ru   R    t   on_decode_errort   KeyErrorR   t   ackR   R   R   (   R?   t   critR   R   RP   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_on_decode_error   s    $	c         C@ s   | j  d  k r t   | _  n  t   | _ t   | _ t   | _ t   | j j _	 |  j
 t   | j | j     Wd  QX|  j | j j j  | j j j d d S(   Ni    (   R~   R%   R    R0   R+   RG   R   R   t   drain_eventsR   t   assertRaisesRI   t	   loop_argsR   t   register_callbackR   R   (   R?   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR     s    c         C@ s   t  |  j j d |  j d |  j } t | j _ t   | _	 t
 t   d |  j j d d d d g d i  } | j   |  j |  } | | j   |  |  j j   } |  j | t  |  j | j |  j j  |  j | j   d
  |  j |  j j    d  S(   NRt   Ru   Rv   R@   i   i   i   RA   i   i@   (   R   Rs   R}   Rt   Ru   R   R&   R   R0   R+   Rk   R    Rq   R'   R   R   R   t
   get_nowaitR   R   R   t   executeR   t   empty(   R?   R   Rj   R   t	   in_bucket(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_receieve_message  s    $
c      
   C@ s   d t  f d     Y} | |  j j d |  j d t d t   d |  j } t f | _ |  j	 t   | j
   Wd  QX| j j   d  S(   Nt   MockConsumerc           B@ s   e  Z d  Z d   Z RS(   i    c         _@ s1   |  j  s! d |  _  t d   n  t d   d  S(   Ni   Rz   Ry   (   t
   iterationsR   t   SyntaxError(   R?   R@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRI   -  s    		(   R2   R3   R   RI   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   *  s   Rt   t   send_eventsRC   Ru   (   R   Rs   R}   Rt   RZ   R   Ru   R   t   channel_errorsR   R   R\   (   R?   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start_channel_error(  s    	c      
   C@ sy   d t  f d     Y} | |  j j d |  j d t d t   d |  j } t f | _ |  j	 t
 | j  | j j   d  S(   NR   c           B@ s   e  Z d  Z d   Z RS(   i    c         _@ s1   |  j  s! d |  _  t d   n  t d   d  S(   Ni   Rz   Ry   (   R   R   R   (   R?   R@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRI   ?  s    		(   R2   R3   R   RI   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   <  s   Rt   R   RC   Ru   (   R   Rs   R}   Rt   RZ   R   Ru   R   t   connection_errorsR   R   R   R\   (   R?   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start_connection_error:  s    	c         C@ s   d |  j  j   j f d     Y} t |  j j d |  j d |  j  } |   | _ t   | _ | | j _	 t
 | j j d  | _ | j | j     d  S(   NR   c           B@ s   e  Z d Z d    Z RS(   c         [@ s   d  |  j _ t j d   d  S(   Ni
   (   R%   R5   R   t   sockett   timeout(   R?   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   Q  s    N(   R2   R3   R%   R5   R   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   N  s   Rt   Ru   i
   (   Ru   R   t	   __class__RH   Rs   R}   Rt   R    RG   R5   R   R~   RI   R   (   R?   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt    test_loop_ignores_socket_timeoutL  s    "$c         C@ s   d |  j  j   j f d     Y} t |  j j d |  j d |  j  } t | j _	 |   } | _ | | j _
 t   | _ t | j j d  | _ |  j t j   | j | j     Wd  QXt | j _	 | | _ | j | j     d  S(   NR   c           B@ s   e  Z d Z d    Z RS(   c         [@ s   d  |  j _ t j d   d  S(   NRz   (   R%   R5   R   R   R   (   R?   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   a  s    N(   R2   R3   R%   R5   R   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   ^  s   Rt   Ru   i
   (   Ru   R   R   R   Rs   R}   Rt   R   R&   R   R5   R    RG   R   R~   R   R   R   RI   R   R   (   R?   R   R   t   c(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_loop_when_socket_error\  s    "$	c         C@ sV  d |  j  j   j f d     Y} t |  j j d |  j d |  j  } t | j _	 |   | _ | | j _
 t   | _ t | j j d  | _ | j | j     | j | j     |  j | j j j  | j j j d d  |  j | j j d  | j j   |  j | j j d  | j j   |  j | j j d  | j j j d d  d  S(   NR   c           B@ s   e  Z d Z d    Z RS(   c         [@ s   d  |  j _ d  S(   N(   R%   R5   R   (   R?   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   w  s    N(   R2   R3   R%   R5   R   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   t  s   Rt   Ru   i
   R{   i	   (   Ru   R   R   R   Rs   R}   Rt   R   R&   R   R5   R    RG   R   R~   RI   R   R   t   consumeR   t   assert_called_withR   t   valuet   decrement_eventuallyt   update(   R?   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt	   test_loopr  s"    "$c      
   C@ s   t  |  j j d |  j d |  j } t t f | _ t f | _	 t
 | t d t d    t
 | t d t d    t
 | t d t d    |  j t  ! t
 | t d t d    Wd  QXd  S(   NRt   Ru   R   Rz   (   RH   Rs   R}   Rt   Ru   t   AttributeErrorR   R   R   R   R	   R    R   t
   IndexError(   R?   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_ignore_errors  s    $c         C@ s   d d l  m } t |  j j d |  j d |  j } t d  d  | _	 t
   } | j	 j } | j |  |  j | | j  |  j | j	 j | d  |  j |  j j   |  d  S(   Ni    (   R   Rt   Ru   i
   i   (   t   celery.workerR   RH   Rs   R}   Rt   Ru   R   R%   R~   t   objectR   t   apply_eta_taskR   t   reserved_requestsR   t   assertIsR   (   R?   R   R   Rv   R~   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_apply_eta_task  s    $	c   	   
   C@ s  t  |  j j d |  j d |  j } t | j _ | j j	   t
 t   d |  j j d t j   t d d  j   d d d	 d
 g d i  } t   | _ t | j j d  | _ | j j } t   | _ t | _ | j   |  j |  } | | j   |  | j j   | j j d  g  |  j j D] } | d ^ q'} d } x3 | D]+ } | j  d j |  j j k rJt! } qJqJW|  j" |  |  j# | j j |  | j j   d  S(   NRt   Ru   Rv   R   t   daysi   R@   i   i   i   RA   i    ($   RB   Rs   R}   Rt   Ru   R   R&   R   R4   RN   Rk   R    Rq   R'   R   R   R   R   RG   R   R~   R   R0   R+   RZ   R   R   R   R   R\   t   joint   queueR@   R<   R   t   assertGreater(	   R?   R   Rj   t   current_pcountR   t   entryt   itemst   foundt   item(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt#   test_receieve_message_eta_isoformat  s2    $	
#c         C@ s  t  |  j j d |  j d |  j } t | t j  j } t	   | _
 t	   | _ | j d d  | j
 j j d d  t	   | _
 t d  | j
 j _ | j d d  | j
 j j d d  t	   | _
 t d  | j
 j _ | j d d  | j
 j j d d  |  j | j j  d  S(   NRt   Ru   Rz   Ry   (   RH   Rs   R}   Rt   Ru   R7   R   t   Controlt   boxR    R   t   resett
   on_messageRQ   R   R   R   t
   ValueErrorR   R   (   R?   R   t   con(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_pidbox_callback  s    $c      
   C@ s   t  |  j j d |  j d |  j } t | j _ | j j	   t
   } t   } t | d |  j j d d d d g d i  d	 | } d
 d l m } | j |  |  j |  } | | j   |  |  j |  j j    d  S(   NRt   Ru   Rv   R@   i   i   i   RA   R(   i    (   t   revoked(   RB   Rs   R}   Rt   Ru   R   R&   R   R4   RN   R    R   Rk   Rq   R'   t   celery.worker.stateR   t   addR   R   R   R   (   R?   R   R   R(   t   tR   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_revoke  s    $		$c         C@ s   t  |  j j d |  j d |  j } t | j _ | j j	   t
   } t | d d d d d d g d	 i  } t   | _ |  j |  } |  j | | j   |   |  j t   |  j j   Wd  QX|  j |  j j    d  S(
   NRt   Ru   Rv   s   x.X.31xR@   i   i   i   RA   (   RB   Rs   R}   Rt   Ru   R   R&   R   R4   RN   R    Rk   R0   R+   R   t   assertFalseR   R   R   R   R   R   (   R?   R   R   Rj   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt$   test_receieve_message_not_registered  s    $	's   celery.worker.consumer.loggerc         C@ s4  t  |  j j d |  j d |  j } t | j _ t   } t	 | d d d d g d i  } t
   | _ t j f | _ t   | _ t j d  | j _ |  j |  } |  j | | j   |   |  j | j  |  j t   |  j j   Wd  QX|  j |  j j    | j j d	 t  |  j | j j  d  S(
   NRt   Ru   R@   i   i   i   RA   Rz   t   requeue(   R   Rs   R}   Rt   Ru   R   R&   R   R    Rk   R0   R+   R   R   R   t   rejectR   R   R   R   R   R   R   R   R   R   R   RZ   t   critical(   R?   t   loggerR   R   R   Rj   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt    test_receieve_message_ack_raises  s     $	!c         C@ s  d d  l  } d d l m } t j j d  rF | t d | j } n	 d   } | d  | d  t |  j	 j
 d |  j d	 |  j } | d
  | j j   t   | _ t   } | d  t | d |  j j d d d d g d i  d t j   t d d  j   } | d  z | d  | j j |  | d  | j j j } t | j j _ | d  | j j |  | d  | | j j _ | d  | j j |  | d  t   | _ | d  |  j |  } | d  | d  | | j    |  | d  Wd  | d   | j j!   | d!  y% | d"  | j j"   | d#  Wn t# k
 rbn XX| j j$ d }	 |  j% t& |	  d$  |	 \ }
 } } | j' d } |  j( | t)  |  j% | j |  j j  |  j% | j*   d&  |  j+ t,   |  j	 j-   Wd  QXd  S('   Ni    (   t   partialt   C_DEBUG_TESTt   filec          _@ s   d  S(   N(    (   R@   RA   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   pp  s    s   TEST RECEIVE MESSAGE ETAs   +CREATE MYKOMBUCONSUMERRt   Ru   s   -CREATE MYKOMBUCONSUMERs   + CREATE MESSAGERv   R@   i   i   i   RA   R   R   i   s   - CREATE MESSAGEs   + BLUEPRINT START 1s   - BLUEPRINT START 1s   + BLUEPRINT START 2s   - BLUEPRINT START 2s   + BLUEPRINT RESTARTs   - BLUEPRINT RESTARTs   + GET ON MESSAGEs   - GET ON MESSAGEs
   + CALLBACKs
   - CALLBACKs   + STOP TIMERs   - STOP TIMERs   + JOIN TIMERs   - JOIN TIMERi   i   i@   (.   t   syst	   functoolsR   t   ost   environt   gett   printt
   __stderr__RB   Rs   R}   Rt   Ru   R4   RN   R0   R+   R    Rk   Rq   R'   R   R   R   R   R&   R   t   conft   BROKER_CONNECTION_RETRYRZ   R   R   R   R\   R   t   RuntimeErrorR   R   t   lenR@   R   R   R   R   R   R   (   R?   R   R   R   R   R   Rj   t   pR   t   in_holdR   t   priorityR   Rv   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_receive_message_eta  sp    	

$
	
"












c         C@ s   t  |  j j d |  j d |  j } t | t j  j } t	   | _
 t	   } | j
 _ t	   | _ t j d  | j _ t j f | _ | j   | j j   d  S(   NRt   Ru   Rz   (   RH   Rs   R}   Rt   Ru   R7   R   R   R   R    R   Rh   R   R   R   RW   R   R   R   R   (   R?   R   R   t   chan(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_reset_pidbox_nodeF  s    $
c         C@ s   d d l  m } t   } t | _ t |  j j d |  j d | d |  j	 } t
 | t j  } |  j | j |  | j |  | j j j | j j |  d  S(   Ni    (   t   gPidboxRt   RC   Ru   (   t   celery.worker.pidboxR  R    R<   t   is_greenRH   Rs   R}   Rt   Ru   R7   R   R   R   R   R   RC   t   spawn_nR   RI   (   R?   R  RC   R   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_reset_pidbox_node_greenQ  s    		c         @ sQ  t    } t | _ t |  j j d |  j d | d |  j  t     _ t	  t
 j   d t  f d     Y} |    j j _ g   d t f   f d     Y  t     _    f d    _ t	  t
 j    j j   |  j  j j j j  |  j  j j
   j j
 j j   |  j  j  |  j  d	 j  d  S(
   NRt   RC   Ru   t	   BConsumerc           B@ s   e  Z d    Z d   Z RS(   c         S@ s   |  j    |  S(   N(   R   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt	   __enter__h  s    
c         W@ s   |  j    d  S(   N(   t   cancel(   R?   t   exc_info(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   __exit__l  s    (   R2   R3   R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR  f  s   	R   c           @ sY   e  Z d  Z   f d   Z d   Z d   Z d   Z d   Z  f d   Z d   Z	 RS(   i    c         @ s2     j  |   | |  _ |  j   |  _ t |  _ d  S(   N(   RM   R5   Rh   t   default_channelRZ   RV   (   R?   R5   (   t   connections(    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR>   u  s    	c         S@ s   |  S(   N(    (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR  {  s    c         W@ s   |  j    d  S(   N(   RW   (   R?   R  (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR  ~  s    c         S@ s   t    S(   N(   R    (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRh     s    c         S@ s   d S(   Ns   dummy://(    (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   as_uri  s    c         @ sG   |  j  s' |  j  d 7_  t j    n  d  |  j _   j j j   d  S(   Ni   (	   t   callsR   R   R%   R5   R   R   t   _node_shutdownRc   (   R?   RA   (   R   (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR     s
    	c         S@ s   t  |  _ d  S(   N(   R<   RV   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRW     s    (
   R2   R3   R  R>   R  R  Rh   R  R   RW   (    (   R  R   (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR   r  s   				c           @ s     d   S(   NR5   (    (    (   R   R   (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   <lambda>  t    i    (   R    R<   R  RH   Rs   R}   Rt   Ru   R   R7   R   R   R   t   listenR   R   t   connectRI   R   R   R   R   R   RV   (   R?   RC   R  (    (   R   R  R   R   sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test__green_pidbox_node^  s&    			s1   kombu.connection.Connection._establish_connections   kombu.utils.sleepc         @ sp   t  |  j j d |  j d |  j } d d l m } t f | _   f d   } |   _	 | j
     j   d  S(   NRt   Ru   i    (   t	   Transportc           @ s#     j  d k r d  St d   d  S(   Ni   R   (   R   R   (    (   R   (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   effect  s    (   RH   Rs   R}   Rt   Ru   t   kombu.transport.memoryR"  R   R   R   R   R   (   R?   t   sleepR   R   R"  R#  (    (   R   sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_connect_errback  s    $	
c         C@ sl   t  |  j j d |  j d |  j } t | t j  } t   | _	 t   | _
 | j	 j   | j |  d  S(   NRt   Ru   (   RH   Rs   R}   Rt   Ru   R7   R   R   R   t   _node_stoppedR  Rc   R\   (   R?   R   t   cont(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_stop_pidbox_node  s    $c         @ s  d t  f d     Y} d t f d     Y} t   } | |  j j d |  j d | d |  j   t     _ t     _ |     _	 t
     _ d   _   f d	   } |   _ |  j t     j   Wd  QX|  j   j d
  |  j   j	 j   j	 j  | j   | |  j j d |  j d |  j d t d |   |     _	 t     _ t     _ t
     _ t d t j d     _ |  j t j     j   Wd  QX|  j   j j  d  S(   Nt   _QoSc           B@ s   e  Z d  Z d Z d   Z RS(   i   i   c         S@ s   |  j  |  _ d  S(   N(   R   t   prev(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR     s    (   R2   R3   R+  R   R   (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR*    s   t	   _Consumerc           B@ s   e  Z d  Z d   Z RS(   i    c         S@ s"   |  j  d k r t d   n  d  S(   Ni   Rz   (   R   R   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   reset_connection  s    (   R2   R3   R   R-  (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR,    s   Rt   t   init_callbackRu   i    c          @ sY     j  d 7_    j j   j j k r7   j j   n    j  d k rU t d   n  d  S(   Ni   i   Rz   (   R   R~   R+  R   R   R   (   R@   RA   (   R   (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   raises_KeyError  s
    i   R   R   Rz   (   R   RH   R    Rs   R}   Rt   Ru   RG   RF   R~   R   R   R   RI   R   R   R   R   R+  R   t
   reset_mockRZ   R   R   R   R   (   R?   R*  R,  R.  R/  (    (   R   sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start__loop  s6    			
!c         C@ sX   t  |  j j d |  j d |  j } | j j   |  j d  | j	  | j
 j |  d  S(   NRt   Ru   (   R   Rs   R}   Rt   Ru   R4   RN   R   R%   RC   R&   R   (   R?   R   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt"   test_reset_connection_with_no_node  s    $(#   R2   R3   Rw   Rx   R   R   R   R   R"   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R!  R&  R)  R1  R2  (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRl   ~   sD   															
							@			?			2t   test_WorkControllerc           B@ sU  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e d	  d
    Z e d  e d  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    |  _ d d l m } | j |  _ t j |  _ t   |  _ | _ t   |  _ t _ |  j	 j
 d t  d    } | |  _ d  S(   Ni    (   R,   Rm   c         S@ s   |  | | S(   N(    (   Rn   Ro   Rp   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRq     s    (   t   create_workerR,   t   celeryR   t   _loggerR   t   _comp_loggerR    t   comp_loggerRu   Rv   RZ   Rq   (   R?   R,   Rq   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRw     s    c         C@ s,   d d l  m } |  j | _ |  j t _ d  S(   Ni    (   R,   (   R5  R,   R6  R   R7  R   (   R?   R,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRx     s    c         K@ s2   |  j  j d d d d |  } | j j j   | S(   Nt   concurrencyi   t   logleveli    (   Ru   R   R&   t   shutdown_completeRc   (   R?   t   kwR,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR4    s    c         C@ s   |  j  j t    d  S(   N(   R,   t   on_consumer_readyR    (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_on_consumer_ready  s    c         C@ s^   t  |  j j _ t   |  j j j d <|  j j i   |  j j j	 j
 j t |  j j   d  S(   Nt   queues(   R<   Ru   R  t   CELERY_WORKER_DIRECTR    t   amqpt   __dict__R,   t   setup_queuesR?  t
   select_addR   R   t   hostname(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_setup_queues_worker_direct	  s
    c         C@ s<   t  d  * } |  j j   | j j d |  j  Wd  QXd  S(   Ns   celery.signals.worker_shutdownt   sender(   R"   R,   t   _send_worker_shutdownRU   R   (   R?   t   ws(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_send_worker_shutdown  s    c         C@ s   t  d   d d l m } d d l m } t d  y } t   | _ t d  X } | d  d  d | } | j	 d d	  | j
 j d
 d  d d d d	  | j d	  Wd  QXWd  QXd  S(   Ns   unstable testi    (   t   process_destructor(   t   Workers&   celery.signals.worker_process_shutdowns   os._exitt   on_exiti   gJM!	@RG  t   pidt   exitcode(   R!   t   celery.concurrency.preforkRK  t   celery.concurrency.asynpoolRL  R"   R    t   _make_shortcutsR%   t   _do_exitRU   R   (   R?   RK  RL  RI  t   _exitR,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt(   test_process_shutdown_on_worker_shutdown  s    c         C@ sh   t    |  j _ t    } t | j _ |  j j |  |  j j j   t |  j d  |  j j |  d  S(   Nt   _quick_release(	   R    R,   RV  R   t   execute_using_poolR   t   _process_taskR   t   delattr(   R?   t   req(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt+   test_process_task_revoked_release_semaphore$  s    	c         C@ s   d  |  j _ |  j j   d  S(   N(   R%   R,   R&   t	   _shutdown(   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_shutdown_no_blueprint.  s    s   celery.platforms.create_pidlockc         C@ se   t    | _ |  j d d  } g  | _ | j   |  j | j  | j   |  j | j j	 j  d  S(   Nt   pidfilet   pidfilelockfilepid(
   R    R   R4  R4   R   R   R   R\   t   pidlockt   release(   R?   t   create_pidlockR,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_use_pidfile2  s    	

s   celery.platforms.signalss%   celery.platforms.set_mp_process_titlec         @ s{  t    ld d l m } d d l m } d d l m } m } m }   f d     t	   _
 | j j    d   } |  j d |   }	 t t  |	 _ | |	 d  | j j |   | j j |   |  j |	 j j j  |  j   j
  |  j | j |	  | j d	 d
 d t d  I }
 d t j d <z | |	 d  |
 j |	  Wd  t j j d d   XWd  QXWd  QXWd  QXd  S(   Ni    (   t   signals(   t   _tls(   t   process_initializert   WORKER_SIGRESETt   WORKER_SIGIGNOREc          @ s   t    _ d  S(   N(   R<   R   (   RA   (   t   on_worker_process_init(    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyRi  F  s    c          _@ s%   t  |  |   } i  | _ i  | _ | S(   N(   R    R  t   override_backends(   R@   RA   t   loader(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   LoaderK  s    		Rk  s   awesome.worker.comt   celerydRE  s+   celery.app.trace.setup_worker_optimizationst   1t   FORKED_BY_MULTIPROCESSINGs   luke.worker.com(    R#   R5  Rd  t   celery._stateRe  RP  Rf  Rg  Rh  RZ   R   t   worker_process_initR   t   CeleryR   R   R  t   ignoret   assert_any_callR   R   Rk  t   init_workerR   R   t   current_appR   R"   R   R   RN   R%   (   R?   t   set_mp_process_titlet   _signalsRd  Re  Rf  Rg  Rh  Rl  Ru   t   S(    (   Ri  sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_process_initializer<  s0    
		c         C@ s`   |  j  } |  j | j  |  j | j t  |  j | j  |  j | j  |  j | j  d  S(   N(	   R,   t   assertIsNotNoneRt   R   R   RC   R   R   R4   (   R?   R,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt
   test_attrse  s    	c         C@ sa   |  j  j d d d d d t  } |  j | j  |  j | j g  | j D] } | j ^ qG  d  S(   NR9  i   R:  i    t   beat(   Ru   R   R<   R   R}  R   R4   R5   (   R?   R,   t   w(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_with_embedded_beatm  s    !c         C@ s8   |  j  d d d g d t d d  } |  j | j  d  S(   Nt	   autoscalei
   i   R   t	   timer_clss   celery.utils.timer2.Timer(   R4  RZ   R   t
   autoscaler(   R?   R,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_with_autoscalerr  s    		c         C@ s   |  j  j d d d d  } | j   |  j | j j t  | j   |  j | j j t  | j j	 t
 } | j _	 z\ t | j _ | j d t  |  j | j j t  | j d t  |  j | j j t  Wd  | | j _	 Xd  S(   NR9  i   R:  i    t   in_sighandler(   Ru   R   R\   t   assertNotEqualR&   R   R   t	   terminateRC   t   signal_safeRZ   R   R<   (   R?   R,   t   sigsafe(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_dont_stop_or_terminatey  s    

c         C@ s   |  j  j d d d d  } y t d   WnV t k
 r } t j |  j |  |  j j j d \ } } |  j	 d | |  n Xd  S(   NR9  i   R:  i    Rz   R   (
   Ru   R   R   R   R   t   on_timer_errorR8  R   R   R   (   R?   R,   t   exct   msgR@   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_on_timer_error  s    c         C@ s}   |  j  j d d d d  } t j |  j d  |  j j j d } | d | d } } |  j d |  |  j	 d |  d  S(   NR9  i   R:  i
   g      >@i    s   Next eta %s secs(
   Ru   R   R   R   t   on_timer_tickR8  t   debugR   R   R   (   R?   R,   t   xargst   fmtt   arg(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_on_timer_tick  s    c         C@ s   |  j  } t   | _ t   } t | d |  j j d d d d g d i  } t | j   d | d |  j } | j	 |  |  j
 | j j j d	  | j j   d  S(
   NRv   R@   i   i   i
   RA   RP   Ru   i   (   R,   R    RC   Rk   Rq   R'   R   R   Ru   RX  R   t   apply_asyncR   R\   (   R?   R,   R   Rj   Rv   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_process_task  s    		$	!c         C@ s   |  j  } t   | _ t d  | j j _ t   } t | d |  j j d d d d g d i  } t	 | j
   d | d	 |  j } g  | _ t | j _ |  j t   | j |  Wd  QXd  S(
   Ns   Ctrl+CRv   R@   i   i   i
   RA   RP   Ru   (   R,   R    RC   t   KeyboardInterruptR  R   Rk   Rq   R'   R   R   Ru   R4   R   R&   R   R   RX  (   R?   R,   R   Rj   Rv   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_process_task_raise_base  s    		$	!	c         C@ s   |  j  } t   | _ t   | j j _ t   } t | d |  j j d d d d g d i  } t	 | j
   d | d |  j } g  | _ t | j _ |  j t   | j |  Wd  QXd  S(	   NRv   R@   i   i   i
   RA   RP   Ru   (   R,   R    RC   R   R  R   Rk   Rq   R'   R   R   Ru   R4   R   R&   R   R   t
   SystemExitRX  (   R?   R,   R   Rj   Rv   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt'   test_process_task_raise_WorkerTerminate  s    		$	!	c         C@ s   |  j  } t   | _ t d  | j j _ t   } t | d |  j j d d d d g d i  } t	 | j
   d | d	 |  j } | j |  | j j   d  S(
   Ns   some exceptionRv   R@   i   i   i
   RA   RP   Ru   (   R,   R    RC   R   R  R   Rk   Rq   R'   R   R   Ru   RX  R\   (   R?   R,   R   Rj   Rv   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_process_task_raise_regular  s    		$	!c         C@ s   |  j    } t | j _ t   } t   | j _ | g | _ | j   | j j	 |  |  j
 | j j  |  j    } t | j _ t   } t   | j _ d  | _ | g | _ | j   |  j
 | j j  d  S(   N(   R4  R   R&   R   R*   R   R   R   R4   R   R   R  R   R   R%   R\   (   R?   t   worker1t   stct   worker2t   sec(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt"   test_start_catches_base_exceptions  s     	
		
c         C@ s\   d d l  m } | j } t   | _ z& |  j d d  } |  j | j  Wd  | | _ Xd  S(   Ni    (   R   t   state_dbt   statefilename(   R   R   t
   PersistentR    R4  R   t   _persistence(   R?   R   R  R,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_state_db  s    	c         C@ sE   |  j  } t   | _ t   } | j |  | j j | j |  d  S(   N(   R,   R    t   _quick_acquiret   _process_task_semR   RX  (   R?   R,   RZ  (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_process_task_sem  s
    		c         C@ sO   |  j  } t   | _ | j   | j j j   t   | j j _ | j   d  S(   N(   R,   R    R   t   signal_consumer_closeRW   R   R   R   (   R?   R,   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_signal_consumer_close  s    	
c         C@ sZ  |  j  } | j j j   g  t d  D] } t t |    ^ q& | _ t | j _	 d | j _
 x5 | j D]* } t   | _ t   | _ t   | _ qi W| j   x$ | j D] } |  j | j j  q Wt   | _ | j   x7 | j D], } |  j | j j  |  j | j j  q W| j   d  | _ | j   d  | j d <| j   | j   d  S(   Ni   i(   R,   R&   R;  Rc   R   R*   R   R4   R   R   t   startedR    R   RW   R\   R   R   R   R%   RC   (   R?   R,   t   _R~  t   stopstep(    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start__stop  s.    	.


	

c         C@ sT   |  j  } t   } | g | _ t   | j _ t   | _ | j   | j j   d  S(   N(   R,   R    R4   t	   TypeErrorR   R   R\   R   (   R?   R,   R)   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_step_raises  s    		
c         C@ s   |  j  |  j j  d  S(   N(   R   R,   R   (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt
   test_state$  s    c         C@ s   |  j  } | j j j   d | j _ t | j _ g  t d  D] } t   ^ q> | _	 | j
   x( | j	 d  D] } |  j | j
 j  qn W|  j | j j t | j	   |  j | j j t  | j   x$ | j	 D] } |  j | j j  q Wd  S(   Ni   i   (   R,   R&   R;  Rc   R  R   R   R   R*   R4   R   R   R   R  R   R  (   R?   R,   R  R~  R)   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_start__terminate'  s    	%

c         C@ sE   t    } t | j _ t j |  j |  |  j | j | j	  d  S(   N(
   R    RZ   t   pool_clst   uses_semaphoreR   t   Queuest   createR   t   process_taskRX  (   R?   R~  (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_Queues_pool_no_sem6  s    	c         C@ s<   t    } t j |  } | j |  |  j | j j  d  S(   N(   R    R   t   HubR  R   Rt   t   max_interval(   R?   R~  Rn   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_Hub_crate<  s    	c         C@ sT   t    } d | j _ | j _ t    | _ t | _ t j |  } | j	 |  d  S(   N(    (
   R    t	   _conninfoR   R   R  RZ   t   use_eventloopR   t   PoolR  (   R?   R~  RC   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_Pool_crate_threadedB  s    		c         @ s'  d d l  m } t   } d | j _ | j _ t   | _ t     t   }   _ t   t   g | _ i  | _	 i  | _
 i  | _ d d l m } d | f   f d     Y} | | _ t | _ d | j _ t j |  } | j |  | j | | j  |  j | j |  | j } | j   d  S(   Ni    (   t   LaxBoundedSemaphore(   t   TaskPoolt   MockTaskPoolc           @ s   e  Z   Z e d     Z RS(   c         S@ s   i d t    6S(   Ni   (   R    (   R?   (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   timers\  s    (   R2   R3   R  t   propertyR  (    (   t   PoolImp(    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR  Y  s   i(    (   t   kombu.async.semaphoreR  R    R  R   R   t   hubR   t   _poolt   _cachet   _fileno_to_inqt   _fileno_to_outqRP  R  R  R<   R  R   t   restart_countR   R  R  t   register_with_event_loopR   t	   semaphoreRC   R   (   R?   R  R~  t   poolimpt	   _TaskPoolR  RC   t   P(    (   R  sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   test_Pool_createJ  s*    								($   R2   R3   Rw   Rx   R4  R>  RF  RJ  RU  R[  R]  R"   Rc  Rz  R|  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyR3    sD   								
	
	(					
										
								(J   t
   __future__R    R   R   R   t   collectionsR   R   R   t	   threadingR   RA  R   t   kombuR   t   kombu.commonR   R	   t   kombu.transport.baseR
   t   celery.app.defaultsR   t   celery.bootstepsR   R   R   t   celery.concurrency.baseR   t   celery.datastructuresR   t   celery.exceptionsR   R   R   t   celery.fiveR   R   R   Rr   t   celery.utilsR   R   R   R   t   celery.worker.consumerR   t
   __Consumert   celery.worker.jobR   R   t   celery.utils.serializationR   t   celery.utils.timer2R   t   celery.tests.caseR   R    R!   R"   R#   R%   R*   R0   R   R1   R7   RB   RH   RJ   RR   R[   Rk   Rl   R3  (    (    (    sA   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_worker.pyt   <module>   sN   (				  q