
P'^c           @@  s  d  d l  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 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 d  d l m Z d  d l  m! Z! m" Z" d  d l# m$ Z$ m% Z% m& Z& m' Z' e j(   Z) d e* f d     YZ d e j+ 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   defaultdict(   t   datetimet	   timedelta(   t   pidbox(   t   AttributeDict(   t   Queue(   t   uuid(   t   Timer(   t   WorkController(   t   consumer(   t   control(   t   state(   t   Request(   t   revoked(   t   Panel(   t   Pidboxt   gPidbox(   t   AppCaset   Mockt   callt   patchR	   c           B@  s   e  Z d Z d    Z RS(   c         C@  s   i t  j d 6S(   Nt   total(   t   worker_statet   total_count(   t   self(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   stats    s    N(   t   __name__t
   __module__t   Nonet
   autoscalerR   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR	      s   t   Consumerc           B@  s   e  Z d    Z RS(   c         C@  s   | |  _  t   |  _ |  j j |  _ t   |  _ t   |  _ t	   |  _
 t   |  _ d |  _ d |  _ d d l m } | d  |  _ t d    |  _ d  S(   Ni   i    (   t   BasePooli
   c           S@  s   d  S(   N(   R   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   <lambda>3   t    (   t   appt	   FastQueuet   buffert   putt   handle_taskR   t   timerR   t   event_dispatcherR	   t
   controllert   task_consumert   prefetch_multipliert   initial_prefetch_countt   celery.concurrency.baseR    t   poolR   t   task_buckets(   R   R#   R    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   __init__&   s    			(   R   R   R1   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR   $   s   t   test_Pidboxc           B@  s   e  Z d    Z RS(   c         C@  s   t  d   } t   } t |  } t   | _ |  j | j |  t   } | _ | j } | j |  | j	 | |  | j j	 |  Wd  QXd  S(   Ns"   celery.worker.pidbox.ignore_errors(
   R   R   R   t   _close_channelt   assertIst   cR
   t   cancelt   shutdownt   assert_called_with(   R   t   eigt   parentt   pboxt	   pconsumerR6   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_shutdown8   s    		(   R   R   R=   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR2   6   s   t   test_Pidbox_greenc           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  s   t    } t |  } t    } | _ t    } | _ t    } | _ | j |  | j j   | j j   | j |  |  j	 | j  |  j	 | j  | j
   | j |  | j |  d  S(   N(   R   R   t   _node_stoppedt   _node_shutdownR3   t   stopt   setR8   t   waitt   assertIsNonet   reset(   R   R:   t   gt   stoppedR7   t
   close_chan(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt	   test_stopG   s    	
c         C@  s?   t    } t |  } d | _ | j   |  j | j d  d  S(   Nid   ie   (   R   R   t   _resetsRE   t   assertEqual(   R   R:   RF   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_resetsY   s
    		
c         @  s   t    } |  j j   } | j _ t    } | _ t |   t    | _ t    }  _ d g      f d   } | | _  j	 |  |  j
 | j d  d  S(   Ni    c          @  s>     d d k r   j  j   n   j     d c d 7<d  S(   Ni    i   i   (   R@   RB   RE   (   t   argst   kwargs(   t
   call_countRF   (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   sej   s    
i   (   R   R#   t
   connectiont   connectt   return_valuet   drain_eventsR   t	   _do_resett   side_effectt   loopRK   RO   (   R   R:   t   connt   draint   do_resetRP   (    (   RO   RF   sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt	   test_loop`   s    			(   R   R   RI   RL   R[   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR>   E   s   		t   test_ControlPanelc           B@  sL  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 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@  sU   |  j  d t |  j   |  _ |  j j d d d d d t  d    } | |  _ d  S(   NR
   t   names   c.unittest.mytaskt
   rate_limiti   t   sharedc           S@  s   d  S(   N(    (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   mytaskz   s    (   t   create_panelR   R#   t   panelt   taskt   FalseR`   (   R   R`   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   setupw   s    *c         K@  s-   | j  d |  j  | j  d t  t |  S(   NR#   t   hostname(   t
   setdefaultR#   Rf   R   (   R   RN   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   create_state   s    c         K@  s1   |  j  j j j d t d |  j |   d t j  S(   NRf   R   t   handlers(   R#   R   t   mailboxt   NodeRf   Rh   R   t   data(   R   RN   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyRa      s    c         C@  s   t  |  j  } |  j d |  } | j } t   | _ | j d  |  j | j  t d g  | _ | j d  |  j d | j  t d g  | _ |  j d | j d  d  d  S(   NR
   t   enable_eventst   workerRc   s   already enabledt   ok(	   R   R#   Ra   R)   RB   t   groupst   handlet   assertFalset   assertIn(   R   R
   Rb   t   evd(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_enable_events   s    	c         C@  s   t  |  j  } |  j d |  } | j } t | _ t d g  | _ | j d  |  j	 d | j  |  j
 d | j d  d  d  S(   NR
   Rc   t   disable_eventss   already disabledRo   (   R   R#   Ra   R)   t   Truet   enabledRB   Rp   Rq   t   assertNotInRs   (   R   R
   Rb   Rt   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_disable_events   s    		c         C@  sZ   t  |  j  } |  j d |  } d | j j j _ | j d  } |  j | d d  d  S(   NR
   i9  t   clock(   R   R#   Ra   R   R{   t   valueRq   RK   (   R   R
   Rb   t   x(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt
   test_clock   s
    c         C@  s   t  |  j  } |  j d |  } d | j j j _ t j j d  zE | j	 d i d d 6 } |  j
 d | d  |  j | d d	  Wd  t j j d  Xd  S(
   NR
   i9  t   revoked1t   hellos   george@vandelay.comt	   from_nodeR   R{   i:  (   R   R#   Ra   R   R{   R|   R   R   t   addRq   Rs   RK   t   discard(   R   R
   Rb   R}   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt
   test_hello   s    c         C@  sS   d  St  |  j  } |  j d |  } d |  j j _ | j d  } |  j d |  (   NR
   s   hello worldt	   dump_conft	   SOME_KEY6(   R   R#   Ra   t   confR   Rq   Rs   (   R   R
   Rb   R}   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt	   test_conf   s    c         C@  so   t  |  j  } |  j d |  } t   | _ | j d i d d 6d d 6d d 6 | j j j d d d  d  S(   NR
   t   electiont   idt   topict   action(   R   R#   Ra   R   t   gossipRq   R   R8   (   R   R
   Rb   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_election   s    c         C@  sW   t  |  j  } |  j d |  } t | j _ | j d  |  j d | j j j	  d  S(   NR
   t	   heartbeats   worker-heartbeat(   s   worker-heartbeat(
   R   R#   Ra   Rw   R)   Rx   Rq   Rs   t   sendt	   call_args(   R   R
   Rb   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_heartbeat   s    	c      
   C@  s  |  j  d t    } | j d d t d |  j j d d d d  } |  j |  j j |  j j f d  |  j	 d	 |  | j d d t d |  j j d d  d d   } |  j |  j j |  j j f d  |  j	 d	 |  | j d d t d d
 d d  } |  j	 d |  d  S(   NR
   t
   time_limitt	   argumentst	   task_namet   hardi   t   softi
   Ro   t   248e8afya9s8dh921eh928t   error(   i   i
   (   NN(   Ra   R   Rq   t   dictR`   R]   RK   R   t   soft_time_limitRs   R   (   R   Rb   t   r(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_time_limit   s     c         C@  s   d d  l  } | j |  j j   | j d | j d  d  | j d | j d  d  g d t } t   } | | _ |  j	 d |  } | j
 d  } |  j t t d   | D   d d g  d  S(   Ni    t   foot   bart   auto_declareR
   t   active_queuesc         s@  s   |  ] } | d  Vq d S(   R]   N(    (   t   .0t   q(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pys	   <genexpr>   s    (   t   kombuR   R#   RQ   R   t   ExchangeRd   R   R+   Ra   Rq   t   assertListEqualt   listt   sorted(   R   R   R}   R
   Rb   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_active_queues   s    !			c         C@  s?   d j  |  j j d   } |  j d |  |  j d |  d  S(   Ns   
t
   dump_tasksR`   s   rate_limit=200(   t   joinRb   Rq   Rs   (   R   t   info(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_dump_tasks   s    c         C@  sK   t  j d } t  _ z' |  j i d d 6|  j j d   Wd  | t  _ Xd  S(   Nid   R   R   (   R   R   t   assertDictContainsSubsetRb   Rq   (   R   t
   prev_count(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt
   test_stats   s
    c         C@  s   |  j  j d  d  S(   Nt   report(   Rb   Rq   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_report   s    c         C@  s|   t  i |  j j d 6d d 6d d 6i  d 6d |  j } t j j |  z |  j |  j j	 d   Wd  t j j
 |  Xd  S(	   NRc   s   do re miR   RM   RN   R#   t   dump_active(    (   R   R`   R]   R#   R   t   active_requestsR   t
   assertTrueRb   Rq   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_active   s    
c         C@  sq  d t  f d     Y} t |  j  } d | _ t d d  | _ | d  | _ |  j d |  } | j d  |  j	 | j j
 d	  | j j j d  |  j	 | j d
  | j d  |  j	 | j j
 d  | j j j d  |  j	 | j d  t   | j _ t   | j j _ t   } | j j j _ | j d  |  j | j j  | j d  |  j | j j  d  S(   Nt   MockPoolc           B@  s;   e  Z d  d  Z d  d  Z d  d  Z e d    Z RS(   i   c         S@  s   | |  _  d  S(   N(   t   size(   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR1     s    c         S@  s   |  j  | 7_  d  S(   N(   R   (   R   t   n(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   grow  s    c         S@  s   |  j  | 8_  d  S(   N(   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   shrink  s    c         S@  s   |  j  S(   N(   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   num_processes  s    (   R   R   R1   R   R   t   propertyR   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR     s   i   R]   t   qosi   R
   t	   pool_growi   i   t   pool_shrink(   t   objectR   R#   R,   R   R   R/   Ra   Rq   RK   R   t   increment_eventuallyR8   R-   t   decrement_eventuallyR   R
   R*   R   R   t   force_scale_upt   calledt   force_scale_down(   R   R   R
   Rb   t   sc(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_pool_grow  s*    	c         C@  s   d t  f d     Y} t |  j  } |   | _ |  j d |  } | j d i d d 6 |  j d | j j  |  j | j j	  | j d i d d 6 | j d i d d 6 |  j d | j j
  d  S(   Nt   MockConsumerc           B@  s>   e  Z g  Z g  Z e Z d    Z d   Z d   Z d   Z	 RS(   c         S@  s   |  j  j | j  d  S(   N(   t   queuest   appendR]   (   R   t   queue(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt	   add_queue;  s    c         S@  s   t  |  _ d  S(   N(   Rw   t	   consuming(   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   consume>  s    c         S@  s   |  j  j |  d  S(   N(   t   canceledR   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   cancel_by_queueA  s    c         S@  s   | |  j  k S(   N(   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   consuming_fromD  s    (
   R   R   R   R   Rd   R   R   R   R   R   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR   6  s   			R
   t   add_consumert   MyQueueR   t   cancel_consumer(   R   R   R#   R+   Ra   Rq   Rs   R   R   R   R   (   R   R   R
   Rb   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_add__cancel_consumer4  s    c         C@  sn   t  j j   t  j j d  t  j j d  z, |  j t |  j j d   d d g  Wd  t  j j   Xd  S(   Nt   a1t   a2t   dump_revoked(   R   R   t   clearR   RK   R   Rb   Rq   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_revokedR  s    c         C@  s  t  |  j  } |  j d |  } |  j | j d   t i |  j j d 6d d 6d d 6i  d 6d |  j } | j j	 j
 | j j d	   | f  t j   t d
 d   | j j	 j
 | j j d   t   f  t j   t d
 d   |  j | j d   d  S(   NR
   t   dump_scheduleRc   t   CAFEBABER   RM   RN   R#   c         S@  s   |  S(   N(    (   R}   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR!   h  R"   t   secondsi
   c         S@  s   |  S(   N(    (   R}   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR!   k  R"   (    (   R   R#   Ra   Rr   Rq   R   R`   R]   R(   t   schedulet   enter_att   EntryR   t   nowR   R   R   (   R   R
   Rb   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_dump_schedule]  s     
c         C@  s   t  |  j  } t j j t i |  j j d 6t   d 6d d 6i  d 6d |  j  z |  j	 d |  } | j
 d i t d	 6 } |  j i |  j j d
 6d d 6i  d 6t j   d 6| d  t j j   |  j | j
 d   Wd  t j j   Xd  S(   NRc   R   i   RM   RN   R#   R
   t   dump_reservedt   safeR]   Rf   i    (   i   i   (   i   i   (   R   R#   R   t   reserved_requestsR   R   R`   R]   R   Ra   Rq   Rw   R   t   sockett   gethostnameR   Rr   (   R   R
   Rb   t   response(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_dump_reservedo  s&    

c         C@  sD   |  j  j d d t d d d d  } |  j d | j d   d  S(   NR^   R   R   s	   tasks.adds   x1240301#%!s   Invalid rate limit stringR   (   Rb   Rq   R   Rs   t   get(   R   t   e(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt)   test_rate_limit_invalid_rate_limit_string  s    c         C@  s   d t  f d     Y} |   } |  j d |  j d |  } |  j j |  j j } | j d d t d | j d d  |  j | j	 d  |  j
 | j  t | _ | j d d t d | j d d	  |  j | j	 d	  |  j
 | j  d  S(
   Nt	   xConsumerc           B@  s   e  Z e Z d    Z RS(   c         S@  s   t  |  _ d  S(   N(   Rw   RE   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   reset_rate_limits  s    (   R   R   Rd   RE   R   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR     s   R#   R
   R^   R   R   s   100/mi    (   R   Ra   R#   t   tasksR`   R]   Rq   R   RK   R^   R   RE   Rd   (   R   R   R
   Rb   Rc   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_rate_limit  s    	
	
c         C@  s(   |  j  j d d i d d 6d d 6d  S(   NR^   R   s   xxxx.does.not.existR   s   1000/s(   Rb   Rq   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt    test_rate_limit_nonexistant_task  s    c         C@  s0   |  j  t   |  j j d d i  Wd  QXd  S(   NR   R   (   t   assertRaisest   KeyErrorRb   Rq   (   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_unexposed_command  s    c         C@  s_   t    } i d d 6t d 6i | d 6|  j j d 6d 6} |  j j | d   |  j | t  d  S(   Nt   revoket   methodt   destinationt   task_idR   R   (	   R   Rf   R`   R]   Rb   t   handle_messageR   Rs   R   (   R   t   tidt   m(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_revoke_with_name  s    	

c         C@  sY   t    } i d d 6t d 6i | d 6d d 6d 6} |  j j | d   |  j | t  d  S(   NR   R   R   R   t   xxxxxxxxx33333333388888R   R   (   R   Rf   Rb   R   R   Rs   R   (   R   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt%   test_revoke_with_name_not_in_registry  s    	

c         C@  s   t    } i d d 6t d 6i | d 6d 6} |  j j | d   |  j | t  i d d 6d d 6i | d d 6d 6} |  j j | d   |  j | d t  d  S(   NR   R   R   R   R   s   does.not.existt   xxx(   R   Rf   Rb   R   R   Rs   R   Ry   (   R   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_revoke  s    	

c         C@  s   t    } t   | _ } t j j |  z t j t    | d t } |  j	 | t
  |  j | j j  |  j	 d | d  t j t    t   d t } |  j	 d | d  Wd  t j j |  Xd  S(   Nt	   terminates
   terminate:Ro   s   tasks unknown(   R   R   R   R   R   R   R   R   Rw   Rs   R   R   R  RO   R   (   R   t   requestR   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_revoke_terminate  s    	c         C@  s   t    |  j j _ t    |  j j j _ t    } |  j j j j _ d | j _ i d d 6t d 6i d d 6d d	 6d
 6} |  j j	 | d   } |  j d |  d  |  j j j j _ |  j j	 | d   } |  j d |  d  S(   Ni
   i   t	   autoscaleR   R   t   10t   maxt   2t   minR   Ro   R   (   i
   i   (   R   Rb   R   R
   R*   R   t   updateRS   Rf   R   R   Rs   (   R   R   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_autoscale  s    
c         C@  sD   i d d 6t  d 6} |  j j | d   } |  j | i d d 6 d  S(   Nt   pingR   R   t   pongRo   (   Rf   Rb   R   R   RK   (   R   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt	   test_ping  s    

c         C@  sA   i d d 6t  d 6} |  j t   |  j j | d   Wd  QXd  S(   NR7   R   R   (   Rf   R   t
   SystemExitRb   R   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR=     s    

c      	   @  s   g    d t  j f   f d     Y} | d t d |  j d t |  j   d t j d |  j j j	  } | j
 d d	 i d
 d 6d
 d 6} |  j | i d d 6 |  j   d i i d d 6| j 6 d  S(   Nt   _Nodec           @  s   e  Z   f d    Z RS(   c         @  s     j  |  d  S(   N(   R   (   R   Rl   t   exchanget   routing_keyRN   (   t   replies(    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   reply  s    (   R   R   R  (    (   R  (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR    s   Rf   R   R
   Ri   Rj   R  t   reply_toR}   R  R  R  Ro   i    (   R   Rk   Rf   Rh   R   R#   R   Rl   R   Rj   t   dispatchRK   t   assertDictEqual(   R   R  Rb   R   (    (   R  sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_panel_reply  s    	c      	   C@  s}  t  |  j  } t d |  j  | _ | | j _ t   | j j _ t d d  | _ t d d  | _	 t d d  | _
 |  j d |  } | j j j j | k s t  |  j | _ t   } | j j _ t   } |  j t   | j d i | d 6 Wd  QXt |  j j _ | j d i | d 6 |  j | j j j j  | j j   | j	 j   |  j | j  |  j | j  d  S(	   NR#   R]   s   reset_rate_limits()s   update_strategies()Rt   R
   t   pool_restartt   reloader(   R   R#   t   _WCR*   R
   R   R/   t   restartR   t   update_strategiesR)   Ra   R   t   AssertionErrort   loadert   import_from_cwdR   t
   ValueErrorRq   Rw   R   t   CELERYD_POOL_RESTARTSR   R   R8   Rr   (   R   R
   Rb   t   _importt   _reload(    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   test_pool_restart  s*    	c         C@  sc  t  |  j  } t d |  j  | _ | | j _ t   | j j _ t d d  | _ t d d  | _	 |  j
 d |  } |  j | _ | j j j j | k s t  t   } | j j j _ t   } t |  j j _ | j d i d d g d	 6| d
 6 |  j | j j j j  | j j   | j	 j   |  j | j  |  j t d  t d  g | j  d  S(   NR#   R]   s   reset_rate_limits()s   update_strategies()R
   R  R   R   t   modulesR  (   R   R#   R  R*   R
   R   R/   R  R   R  Ra   R   R  R  R   Rw   R   R"  Rq   R   R   R8   Rr   t   assertItemsEqualR   t   call_args_list(   R   R
   Rb   R#  R$  (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt    test_pool_restart_import_modules  s*    	c      	   C@  s  t  |  j  } t d |  j  | _ | | j _ t   | j j _ t d d  | _ t d d  | _	 |  j
 d |  } |  j | _ t   } | j j _ t   } t |  j j _ t j t j i d  d 6  | j d i d g d 6t d	 6| d
 6 |  j | j j j j  |  j | j  |  j | j  | j   | j   | j j j j   | j d i d g d 6t d	 6| d
 6 |  j | j j j j  |  j | j  |  j | j  Wd  QXd  S(   NR#   R]   s   reset_rate_limits()s   update_strategies()R
   R   R  R&  t   reloadR  (   R   R#   R  R*   R
   R   R/   R  R   R  Ra   R  R   Rw   R   R"  R   R   t   sysR&  R   Rq   Rd   R   R   Rr   t
   reset_mock(   R   R
   Rb   R#  R$  (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt    test_pool_restart_reload_modules9  s6    	

(&   R   R   Re   Rh   Ra   Ru   Rz   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%  R)  R-  (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyR\   u   sH   					
													(																				(/   t
   __future__R    R+  R   t   collectionsR   R   R   R   R   t   celery.datastructuresR   t   celery.fiveR   R$   t   celery.utilsR   t   celery.utils.timer2R   t   celery.workerR	   R  R
   R   R   R   t   celery.worker.jobR   t   celery.worker.stateR   t   celery.worker.controlR   t   celery.worker.pidboxR   R   t   celery.tests.caseR   R   R   R   R   Rf   R   R   R2   R>   R\   (    (    (    sB   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_control.pyt   <module>   s0   "0