ó
P'—^c           @@  sœ  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z 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 d  d l m Z d  d l m Z d  d l m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ e ƒ  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   current_process(   t   Exchanget   Queue(   t	   platforms(   t   signals(   t   trace(   t   worker(   R   t   main(   t   ImproperlyConfiguredt   WorkerShutdownt   WorkerTerminate(   t   ensure_process_aware_logger(   t   state(   t   AppCaset   Mockt   SkipTestt   disable_stdoutst   patcht   skip_if_pypyt   skip_if_jythont   WorkerAppCasec           B@  s   e  Z d  „  Z RS(   c         C@  s!   t  t |  ƒ j ƒ  t j ƒ  d  S(   N(   t   superR   t   tearDownR   t   reset_worker_optimizations(   t   self(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR   $   s    (   t   __name__t
   __module__R   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR   "   s   t   Workerc           B@  s   e  Z e Z d  „  Z RS(   c         O@  s   |  j  ƒ  d  S(   N(   t   on_start(   R   t   argst   kwargs(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   start,   s    (   R   R   t   Falset   redirect_stdoutsR    (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR   )   s   t   test_Workerc           B@  sˆ  e  Z e Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z d „  Z	 e d „  ƒ Z
 d „  Z d „  Z d	 „  Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z e d „  ƒ Z e e d ƒ d „  ƒ ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z e d „  ƒ Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z  RS(   c         C@  s<   |  j  j ƒ  } | j d ƒ |  j d |  j  j j k ƒ d  S(   Ns   foo,bar,bazt   foo(   t   appR   t   setup_queuest
   assertTruet   amqpt   queues(   R   t   w(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_queues_string3   s    c         C@  su   t  d ƒ ; } t ƒ  | _ |  j j d d  ƒ } |  j | j d ƒ Wd  QX|  j j d d ƒ } |  j | j d ƒ d  S(   Ns   celery.worker.cpu_countt   concurrencyi   i   (   R   t   NotImplementedErrort   side_effectR%   R   t   Nonet   assertEqualR,   (   R   t	   cpu_countR*   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_cpu_count9   s    c         C@  sB   t  |  j _ |  j t ƒ ! t d |  j ƒ j d t  ƒ Wd  QXd  S(   NR%   t   beat(   t   TrueR%   t
   IS_WINDOWSt   assertRaisest
   SystemExitR   t   run(   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_windows_B_optionB   s    c         C@  sE   t  ƒ  } t ƒ  | _ |  j t ƒ  | j d d d g ƒ Wd  QXd  S(   NR   s   -Pt   xyzybox(   R   R   R8   R6   t   ImportErrort   execute_from_commandline(   R   t   x(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt!   test_setup_concurrency_very_earlyH   s    	c         C@  sc   t  d |  j ƒ } t ƒ  | _ t ƒ  | _ d „  } | | _ | j d g  ƒ |  j | j j ƒ d  S(   NR%   c          _@  s   d  S(   N(    (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR8   S   s    t   celery(   R   R%   R   R8   t   maybe_detacht   run_from_argvR'   t   called(   R   R=   R8   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_run_from_argv_basicN   s    		c      
   C@  s~   t  d |  j ƒ } t d ƒ Z } | j g  ƒ |  j | j ƒ |  j t ƒ  | j d g ƒ Wd  QX|  j | j ƒ Wd  QXd  S(   NR%   s"   celery.bin.worker.detached_celeryds   --detach(	   R   R%   R   R@   t   assertFalseRB   R6   R7   R'   (   R   R=   t   detached(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_maybe_detachY   s    c         C@  s<   t  d |  j ƒ } |  j t ƒ  | j d d ƒ Wd  QXd  S(   NR%   t   loglevelt   GRIM_REAPER(   R   R%   R6   R7   R8   (   R   R=   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt!   test_invalid_loglevel_gives_errorb   s    c         C@  s/   t  ƒ  |  j _ t d |  j ƒ j d d  ƒ d  S(   NR%   RG   (   R   R%   R   R   R8   R/   (   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_no_loglevelh   s    c         C@  sb   |  j  j ƒ  } |  j | j  j ƒ |  j | j  j ƒ |  j | j d t ƒ ƒ | j d t ƒ d  S(   Nt   include_builtins(   R%   R   R'   t   taskst	   finalizedt   tasklistR4   R!   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_tasklistl   s
    c         C@  sQ   |  j  j ƒ  } t j | _ |  j | j ƒ  ƒ t j | _ |  j | j ƒ  ƒ d  S(   N(	   R%   R   t   loggingt   WARNINGRG   RD   t
   extra_infot   INFOR'   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_extra_infos   s
    c         C@  s5   |  j  d |  j d d ƒ } |  j | j t j ƒ d  S(   NR%   RG   RS   (   R   R%   R0   RG   RP   RS   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_loglevel_stringz   s    c         @  sû   i  ‰  d t  j f ‡  f d †  ƒ  Y} t  j } | ƒ  t  _ z° |  j d |  j ƒ } t | _ | j ƒ  x d D] } |  j | ˆ  ƒ ql Wˆ  j	 ƒ  |  j d |  j ƒ } t
 | _ | j ƒ  x d D] } |  j | ˆ  ƒ q¿ W|  j d ˆ  ƒ Wd  | t  _ Xd  S(	   Nt   Signalsc           @  s   e  Z ‡  f d  †  Z RS(   c         @  s   | ˆ  | <d  S(   N(    (   R   t   sigt   handler(   t   handlers(    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   __setitem__…   s    (   R   R   RZ   (    (   RY   (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRV   ƒ   s   R%   t   SIGINTt   SIGHUPt   SIGTERM(   R[   R\   R]   (   R[   R]   (   R   RV   R   R   R%   R!   t   _isattyR   t   assertInt   clearR4   t   assertNotIn(   R   RV   t   pR*   RW   (    (   RY   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_run_worker   s$    		

	
c         C@  s¶  |  j  d |  j ƒ } | j ƒ  |  j | j ƒ  ƒ t j | _ |  j | j ƒ  ƒ t j | _ |  j | j ƒ  ƒ d | _	 |  j | j ƒ  ƒ |  j j
 } |  j  d |  j d d ƒ } t ƒ  |  j _
 d |  j j
 _ |  j | j ƒ  ƒ t ƒ  |  j _
 d |  j j
 _ |  j | j ƒ  ƒ d d	 l m } | d |  j ƒ |  j _
 |  j | j ƒ  ƒ | |  j _
 t | _ |  j | j ƒ  ƒ t j d
 g } t _ z |  j | j ƒ  ƒ Wd  | t _ Xd  S(   NR%   i   i
   R)   s   foo,bar,baz,xuzzy,do,re,mis   acme.baked_beanss   celery.loaders.fooi    (   t	   AppLoaders   the quick brown fox(   i   i
   (   R   R%   R   R'   t   startup_infoRP   t   DEBUGRG   RS   t	   autoscalet   loaderR   R   t   celery.loaders.appRd   R4   t   send_eventst   cdt   ARTLINES(   R   R   t   prev_loaderRd   t   prev(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_startup_info›   s6    
		c         C@  s[   |  j  d |  j ƒ j ƒ  |  j  d |  j d t ƒ j ƒ  |  j  d |  j ƒ } | j ƒ  d  S(   NR%   t   purge(   R   R%   R   R4   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_runÁ   s    c         C@  s   |  j  d |  j ƒ j ƒ  d  S(   NR%   (   R   R%   t   purge_messages(   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_purge_messagesÈ   s    c         C@  s¡  |  j  } | j } | j j i i d d 6d d 6d 6i d d 6d d 6d 6ƒ | j _ |  j d |  j  ƒ } | j d g ƒ |  j d | j j ƒ |  j d | j j j ƒ |  j d | j j ƒ |  j	 d | j j j ƒ t
 | _ | j ` |  j t ƒ $ |  j d |  j  ƒ j d g ƒ Wd  QX| j ` t | _ |  j d |  j  ƒ } | j d g ƒ |  j d | j j j ƒ |  j t d t d ƒ d d ƒ| j j d ƒ d  S(   NR?   t   exchanget   routing_keyt   videoR%   t   image(   R%   t   confR(   t   QueuesR)   R   R&   R_   t   consume_fromRa   R!   t   CELERY_CREATE_MISSING_QUEUESR6   R	   R4   R0   R   R   (   R   R%   t   cR   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_init_queuesÌ   s2    		

		%		c         C@  sv   |  j  d |  j d d ƒ } |  j | j d d g ƒ |  j  d |  j d d ƒ } |  j | j d d g ƒ |  j ƒ  d  S(   NR%   Rg   s   10,3i
   i   t   10i    (   R   R%   t   assertListEqualRg   t   assert_no_logging_side_effect(   R   t   worker1t   worker2(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_autoscale_argumentë   s
    c         C@  sˆ   |  j  d |  j d d ƒ } |  j | j d g ƒ |  j  d |  j d d ƒ } |  j | j d d g ƒ |  j  d |  j d d d g ƒ d  S(   NR%   t   includet   oss   os,syst   sys(   R   R%   R   R„   (   R   R   R‚   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_include_argumentó   s    	c         C@  sd   |  j  t ƒ ! t d |  j ƒ j d d ƒ Wd  QX|  j d |  j d d ƒ } |  j | j d ƒ d  S(   NR%   RG   t   ALIENiÿÿ  (   R6   R7   R   R%   R8   R   R0   RG   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_unknown_loglevelû   s    "s   os._exitc         C@  s-  |  j  } | j r! t d ƒ ‚ n  t d ƒ ú } d | _ d g |  j  j _ |  j d |  j  ƒ } | j ƒ  | j	 d ƒ d d l
 m } t | _ z< |  j t d ƒ $ |  j d |  j  ƒ } | j ƒ  Wd  QXWd  t | _ Xd	 g |  j  j _ |  j t d ƒ $ |  j d |  j  ƒ } | j ƒ  Wd  QXWd  QXd  S(
   Ns   Not applicable on Windowss	   os.getuidi    t   pickleR%   i   (   R   s   absolutely not recommendedt   json(   R%   R5   R   R   t   return_valueRx   t   CELERY_ACCEPT_CONTENTR   R   t   assert_called_withR?   R   R4   t   C_FORCE_ROOTt   assertWarnsRegext   RuntimeWarningR!   (   R   t   _exitR%   t   getuidR   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt(   test_warns_if_running_as_privileged_user  s0    			
	


c         C@  s=   |  j  d |  j d t ƒ |  j t ƒ  t j j Wd  QXd  S(   NR%   R"   (   R   R%   R!   R6   t   AttributeErrorR†   t   stdoutt   logger(   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_redirect_stdouts   s    c         C@  s]   t  ƒ  |  j j _ |  j d |  j d t ƒ } t | _ | j ƒ  |  j |  j j j j	 ƒ d  S(   NR%   t   redirect_stoutds(
   R   R%   t   logR"   R   R4   t   _custom_loggingR   RD   RB   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_on_start_custom_logging&  s
    	
c         C@  s‰   |  j  d |  j d t d t ƒ } |  j j j t ƒ  } |  j j _ z/ | j ƒ  |  j |  j j j j	 d d ƒ Wd  | |  j j _ Xd  S(   NR%   R"   t   no_colori   t   colorize(
   R   R%   R!   R4   Rš   t   setupR   t   setup_loggingRD   t	   call_args(   R   R   Rn   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_setup_logging_no_color.  s    	"
%c         C@  s2   |  j  d |  j d t ƒ } d | _ | j ƒ  d  S(   NR%   R"   R$   (   R   R%   R!   t   pool_clsRe   (   R   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_startup_info_pool_is_str9  s    	c         @  s¥   t  g ‰  t j j ‡  f d †  ƒ } zi |  j d |  j d t  ƒ } t  | j j _ | j ƒ  |  j ˆ  d ƒ |  j	 t
 ƒ  t j j Wd  QXWd  t j j | ƒ Xd  S(   Nc          @  s   t  ˆ  d <d  S(   Ni    (   R4   (   R   (   t   logging_setup(    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   on_logging_setupB  s    R%   R"   i    (   R!   R   R    t   connectR   R%   Rš   t   already_setupR'   R6   R•   R†   R–   R—   t
   disconnect(   R   R¦   R   (    (   R¥   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt%   test_redirect_stdouts_already_handled?  s    	
c         C@  s¶   d t  f d „  ƒ  Y} | d |  j d t ƒ } d „  } d t f d „  ƒ  Y} t j } | t _ zF t | j _ | ƒ  } | j | ƒ |  j	 | j
 ƒ |  j	 | j ƒ Wd  | t _ Xd  S(   Nt	   OSXWorkerc           B@  s   e  Z e Z d  „  Z RS(   c         S@  s   t  |  _ d  S(   N(   R4   t   proxy_workaround_installed(   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   osx_proxy_detection_workaroundV  s    (   R   R   R!   R¬   R­   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR«   S  s   R%   R"   c         S@  s   t  |  _ d  S(   N(   R4   t   hup_not_supported_installed(   t
   controller(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   install_HUP_nosupport[  s    t
   Controllerc           B@  s   e  Z RS(    (   R   R   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR±   ^  s   (   R   R%   R!   t   objectRk   t!   install_HUP_not_supported_handlerR4   t   IS_OSXt   install_platform_tweaksR'   R®   R¬   (   R   R«   R   R°   R±   Rn   R¯   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_platform_tweaks_osxP  s    				c         @  s—   t  g ‰  ‡  f d †  } d t f d „  ƒ  Y} t j } | t _ zF |  j d |  j ƒ } t  | j _ | j | ƒ  ƒ |  j ˆ  d ƒ Wd  | t _ Xd  S(   Nc         @  s   t  ˆ  d <d  S(   Ni    (   R4   (   R   (   t    restart_worker_handler_installed(    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   install_worker_restart_handlerq  s    R±   c           B@  s   e  Z RS(    (   R   R   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR±   t  s   R%   i    (	   R!   R²   Rk   R¸   R   R%   R´   Rµ   R'   (   R   R¸   R±   Rn   R   (    (   R·   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_general_platform_tweaksl  s    			c         @  sX   t  g ‰  t j j ‡  f d †  ƒ } |  j d |  j ƒ j t ƒ  ƒ |  j ˆ  d ƒ d  S(   Nc          @  s   t  ˆ  d <d  S(   Ni    (   R4   (   R   (   t   worker_ready_sent(    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   on_worker_ready…  s    R%   i    (	   R!   R   t   worker_readyR§   R   R%   t   on_consumer_readyR²   R'   (   R   R»   (    (   Rº   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_on_consumer_ready  s    	(!   R   R   R   R   R+   R2   R9   R>   RC   RF   RI   RJ   RO   RT   RU   Rc   Ro   Rq   Rs   R}   Rƒ   R‡   R‰   R   R”   R˜   Rœ   R¢   R¤   Rª   R¶   R¹   R¾   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR#   0   s<   								&			t	   test_funsc           B@  s>   e  Z d  „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c         C@  s   |  j  t j ƒ  ƒ d  S(   N(   R'   Rk   t   active_thread_count(   R   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_active_thread_count  s    c         C@  s)  y t  d ƒ Wn t k
 r- t d ƒ ‚ n Xt d |  j d d ƒ } t j d g } t _ z¼ | j d ƒ } |  j d | ƒ |  j d | ƒ |  j d | ƒ t j d d	 g } t _ zS | j d ƒ } |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d	 | ƒ Wd  | t _ XWd  | t _ Xd  S(
   Nt   setproctitles   setproctitle not installedR%   t   hostnamet   xyzzat   Arg0t   Runningt   celerydt   Arg1(	   t
   __import__R;   R   R   R%   R†   t   argvt   set_process_statusR_   (   R   R   t   prev1t   stt   prev2(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_set_process_status’  s(    c         C@  s]   t  ƒ  } |  j | _ | j d d d g ƒ \ } } |  j | j d ƒ |  j | j d ƒ d  S(   NR   s   --concurrency=512s   --heartbeat-interval=10i   i
   (   R   R%   t   parse_optionsR0   R,   t   heartbeat_interval(   R   t   cmdt   optsR   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_parse_options«  s    	c         C@  sZ   t  j t } t  _ t j d d g } t _ z t d |  j ƒ Wd  | t  _ | t _ Xd  S(   NR   s	   --discardR%   (   Rk   R   R†   RÊ   t   worker_mainR%   (   R   Rb   t   s(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt	   test_main´  s    	(   R   R   RÁ   R   RÏ   RÔ   R×   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyR¿     s   		t   test_signal_handlersc           B@  s  e  Z d  e f d „  ƒ  YZ d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d „  ƒ Z e d	 ƒ e e d
 „  ƒ ƒ ƒ Z e d „  ƒ Z e e d ƒ e d ƒ e d ƒ d „  ƒ ƒ ƒ ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   t   _Workerc           B@  s,   e  Z e Z e Z e d  „ Z e d „ Z RS(   c         C@  s   t  |  _ d  S(   N(   R4   t   stopped(   R   t   in_sighandler(    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   stopÅ  s    c         C@  s   t  |  _ d  S(   N(   R4   t
   terminated(   R   RÛ   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt	   terminateÈ  s    (   R   R   R!   RÚ   RÝ   RÜ   RÞ   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRÙ   Á  s   c         @  sa   i  ‰  d t  j f ‡  f d †  ƒ  Y} t  j | ƒ  } t  _ z | | | Ž  ˆ  SWd  | t  _ Xd  S(   NRV   c           @  s   e  Z ‡  f d  †  Z RS(   c         @  s   | ˆ  | <d  S(   N(    (   R   RW   RX   (   RY   (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRZ   Ï  s    (   R   R   RZ   (    (   RY   (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRV   Î  s   (   R   RV   R   (   R   t   funR   R   RV   Rb   (    (   RY   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   psigË  s    c         @  sœ  |  j  ƒ  } |  j t j | ƒ } i  ‰  t t _ t t _ d t j	 f ‡  f d †  ƒ  Y} t
 d ƒ ™ } d | _ t j | ƒ  } t _ z( | d d t ƒ  ƒ |  j t j ƒ Wd  | t _ t t _ Xz( ˆ  d d t ƒ  ƒ |  j t j ƒ Wd  t t _ XWd  QXt
 d ƒ ‹ } d | _ t j | ƒ  } t _ z. |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  | t _ X|  j t ƒ  ˆ  d d t ƒ  ƒ Wd  QXWd  QXd  S(   NRV   c           @  s   e  Z ‡  f d  †  Z RS(   c         @  s   | ˆ  | <d  S(   N(    (   R   RW   RX   (   t   next_handlers(    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRZ   ã  s    (   R   R   RZ   (    (   Rá   (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyRV   á  s   s&   celery.apps.worker.active_thread_counti   R[   i   (   RÙ   Rà   Rk   t   install_worker_int_handlerR!   R   t   should_stopt   should_terminateR   RV   R   RŒ   R   R²   R'   R6   R
   R   (   R   R   RY   RV   R|   Rb   (    (   Rá   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_worker_int_handlerÙ  s6    				
	
c         C@  sP  y d d  l  } Wn t k
 r/ t d ƒ ‚ n Xt ƒ  } | j d } | _ t d ƒ o } d | _ zI |  j ƒ  } |  j t	 j
 | ƒ } | d d t ƒ  ƒ |  j t j ƒ Wd  | | _ t t _ XWd  QXt d ƒ u } d | _ zO |  j ƒ  } |  j t	 j
 | ƒ } |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  | | _ t t _ XWd  QXd  S(   Ni    s!   only relevant for multiprocessingt   OtherProcesss&   celery.apps.worker.active_thread_counti   R[   i   (   t   _multiprocessingR;   R   R   t   nameR   RŒ   RÙ   Rà   Rk   Râ   R²   R'   R   Rã   R!   R6   R
   (   R   Rç   t   processRè   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt-   test_worker_int_handler_only_stop_MainProcess  s0    					c         C@  s9   |  j  ƒ  } |  j t j | ƒ } | d d t ƒ  ƒ d  S(   NR\   (   RÙ   Rà   Rk   R³   R²   (   R   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt&   test_install_HUP_not_supported_handler   s    c         C@  s>  y d d  l  } Wn t k
 r/ t d ƒ ‚ n Xt ƒ  } | j d } | _ zá t d ƒ f } d | _ |  j ƒ  } |  j t	 j
 | ƒ } z( | d d t ƒ  ƒ |  j t j ƒ Wd  t t _ XWd  QXt d ƒ [ } d | _ |  j ƒ  } |  j t	 j
 | ƒ } |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  QXWd  | | _ Xd  S(   Ni    s!   only relevant for multiprocessingRæ   s&   celery.apps.worker.active_thread_counti   t   SIGQUITi   (   Rç   R;   R   R   Rè   R   RŒ   RÙ   Rà   Rk   t    install_worker_term_hard_handlerR²   R'   R   Rä   R!   R6   R   (   R   Rç   Ré   Rè   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt3   test_worker_term_hard_handler_only_stop_MainProcess&  s0    			$c      	   C@  sx   t  d ƒ f } d | _ |  j ƒ  } |  j t j | ƒ } z( | d d t ƒ  ƒ |  j t j	 ƒ Wd  t
 t _	 XWd  QXd  S(   Ns&   celery.apps.worker.active_thread_counti   R]   (   R   RŒ   RÙ   Rà   Rk   t   install_worker_term_handlerR²   R'   R   Rã   R!   (   R   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt%   test_worker_term_handler_when_threadsC  s    	c         C@  s~   t  d ƒ l } d | _ |  j ƒ  } |  j t j | ƒ } z. |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  t	 t
 _ XWd  QXd  S(   Ns&   celery.apps.worker.active_thread_counti   R]   (   R   RŒ   RÙ   Rà   Rk   Rï   R6   R
   R²   R!   R   Rã   (   R   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt+   test_worker_term_handler_when_single_threadO  s    	s   sys.__stderr__c         C@  sF   |  j  t j ƒ } |  j | d d t ƒ  ƒ ƒ |  j | j j ƒ d  S(   Nt   SIGUSR1(   Rà   Rk   t   install_cry_handlert   assertIsNoneR²   R'   t   writeRB   (   R   t   stderrRY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_worker_cry_handler[  s    c         C@  s6  y d d  l  } Wn t k
 r/ t d ƒ ‚ n Xt ƒ  } | j d } | _ zÐ t d ƒ U } d | _ |  j ƒ  } |  j t	 j
 | ƒ } | d d t ƒ  ƒ |  j t j ƒ Wd  QXt d ƒ [ } d | _ |  j ƒ  } |  j t	 j
 | ƒ } |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  QXWd  | | _ t t _ Xd  S(   Ni    s!   only relevant for multiprocessingRæ   s&   celery.apps.worker.active_thread_counti   R]   i   (   Rç   R;   R   R   Rè   R   RŒ   RÙ   Rà   Rk   Rï   R²   R'   R   Rã   R6   R
   R!   (   R   Rç   Ré   Rè   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt.   test_worker_term_handler_only_stop_MainProcessc  s*    			$	s   celery.platforms.close_open_fdss   atexit.registers   os.closec   	      @  sç   t  t d d  ƒ d  k r' t d ƒ ‚ n  g  ‰  ‡  f d †  } t j | } t _ z~ |  j ƒ  } |  j t j | ƒ } | d d t	 ƒ  ƒ |  j
 t j ƒ |  j
 | j ƒ | j d d } | ƒ  |  j
 ˆ  ƒ Wd  | t _ t t _ Xd  S(   Nt   execvs   platform does not have excvc          @  s   ˆ  j  |  ƒ d  S(   N(   t   extend(   R   (   RÊ   (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   _execv…  s    R\   i    (   t   getattrR…   R/   R   Rù   RÙ   Rà   Rk   R¸   R²   R'   R   Rã   RB   R¡   R!   (	   R   t   _closet   registert
   close_openRû   Rù   R   RY   t   callback(    (   RÊ   s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   test_worker_restart_handler|  s     	c      	   C@  sx   t  d ƒ f } d | _ |  j ƒ  } |  j t j | ƒ } z( | d d t ƒ  ƒ |  j t j	 ƒ Wd  t
 t _	 XWd  QXd  S(   Ns&   celery.apps.worker.active_thread_counti   Rì   (   R   RŒ   RÙ   Rà   Rk   Rí   R²   R'   R   Rä   R!   (   R   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt+   test_worker_term_hard_handler_when_threaded–  s    	c         C@  sm   t  d ƒ [ } d | _ |  j ƒ  } |  j t j | ƒ } |  j t ƒ  | d d t ƒ  ƒ Wd  QXWd  QXd  S(   Ns&   celery.apps.worker.active_thread_counti   Rì   (	   R   RŒ   RÙ   Rà   Rk   Rí   R6   R   R²   (   R   R|   R   RY   (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt2   test_worker_term_hard_handler_when_single_threaded¢  s    	(   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/bin/test_worker.pyRØ   ¿  s$   
	)			(*   t
   __future__R    RP   R…   R†   t   billiardR   t   kombuR   R   R?   R   R   t
   celery.appR   t   celery.appsR   Rk   t   celery.bin.workerR   RÕ   t   celery.exceptionsR	   R
   R   t   celery.utils.logR   t   celery.workerR   t   celery.tests.caseR   R   R   R   R   R   R   R   R   R#   R¿   RØ   (    (    (    s>   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/bin/test_worker.pyt   <module>   s*   4
ÿ ^2