σ
P'^c           @@  s  d  d l  m Z d  d l Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l	 m
 Z
 d  d l m Z m Z m Z d e f d	     YZ 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 e f d     YZ d S(   i    (   t   absolute_importN(   t   time(   t
   LimitedSet(   t   WorkerShutdownt   WorkerTerminate(   t   state(   t   AppCaset   Mockt   patcht   StateResetCasec           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  s   |  j    d  S(   N(   t   reset_state(   t   self(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   setup   s    c         C@  s   |  j    d  S(   N(   R
   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   teardown   s    c         C@  s+   t  j j   t  j j   t  j j   d  S(   N(   R   t   active_requestst   cleart   revokedt   total_count(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR
      s    (   t   __name__t
   __module__R   R   R
   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR	      s   		t
   MockShelvec           B@  s5   e  Z d Z e Z e Z d    Z d   Z d   Z	 RS(   c         K@  s   | |  _  |  S(   N(   t   filename(   R   R   t   kwargs(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   open!   s    	c         C@  s   t  |  _ d  S(   N(   t   Truet   in_sync(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   sync%   s    c         C@  s   t  |  _ d  S(   N(   R   t   closed(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   close(   s    N(
   R   R   t   NoneR   t   FalseR   R   R   R   R   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR      s   		t   MyPersistentc           B@  s   e  Z e   Z RS(    (   R   R   R   t   storage(    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR   ,   s   t   test_maybe_shutdownc           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  s   t  t _ t  t _ d  S(   N(   R   R   t   should_stopt   should_terminate(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR   2   s    	c         C@  s-   t  t _ |  j t   t j   Wd  QXd  S(   N(   R   R   R"   t   assertRaisesR   t   maybe_shutdown(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_should_stop6   s    	c         C@  s-   t  t _ |  j t   t j   Wd  QXd  S(   N(   R   R   R#   R$   R   R%   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_should_terminate;   s    	(   R   R   R   R&   R'   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR!   0   s   		t   test_Persistentc           B@  s}   e  Z d    Z d   Z d   Z d   Z d   Z d d d g d  Z d	   Z d
   Z	 d d d g d d d g d  Z
 RS(   c         C@  s#   |  j    t t d d |  _ d  S(   NR   s   celery-state(   R
   R   R   t   p(   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR   C   s    
c         C@  s   t  |  j _ |  j j   d  S(   N(   R   R)   t   _is_openR   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_close_twiceG   s    c         C@  s9   |  j  |  j j i   |  j |  j j j |  j j  d  S(   N(   t   assertDictEqualR)   t   dbt   assertEqualR   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_constructorK   s    c         C@  sM   d |  j  j d <|  j  j   |  j |  j  j j  |  j |  j  j j  d  S(   Nt   bart   foo(   R)   R-   t   savet
   assertTrueR   R   (   R   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt	   test_saveO   s    c         G@  s7   x0 | D]( } |  j  j j d t    j |  q Wd  S(   NR   (   R)   R-   t
   setdefaultR   t   add(   R   t   idst   id(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   add_revokedU   s    R1   R0   t   bazc         C@  sB   |  j  |   |  j j   x! | D] } |  j | t j  q! Wd  S(   N(   R9   R)   t   merget   assertInR   R   (   R   t   datat   item(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt
   test_mergeY   s    c         C@  s   t    |  j _ d |  j j j _ i i t   d 6d 6d d 6} |  j j |  |  j j j j d  |  j | d d  |  j	 d t
 j  d  S(   Nir  t   abcR   i9  t   clock(   R   R)   RA   t   adjustt   return_valueR   t   _merge_witht   assert_called_withR.   R<   R   R   (   R   t   d(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_merge_dict_   s    c         C@  sΙ   t    } d   | _ t d  ’ } i d d 6} t    |  j _ d |  j j j _ | |  j _ | |  j _ |  j j	 |  | j
 j   |  j | d d  |  j d |  |  j | d |  Wd  QXd  S(   Nc         S@  s   |  S(   N(    (   t   x(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   <lambda>j   t    s   celery.worker.state.revokedi    RA   is  R   t   zrevoked(   R   t   side_effectR   R)   RA   t   forwardRC   t   _dumpst   compresst
   _sync_witht   purgeRE   R.   t   assertNotInt   assertIs(   R   t   passthroughR   RF   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_sync_clock_and_purgeh   s    	t   init   kozc         C@  s―   |  j  |   x | D] } t j j |  q W|  j j   |  j |  j j d  |  j j |  j j d  } |  j |  t	 j
 |  } x | D] } |  j | |  q Wd  S(   NRK   (   R9   R   R   R6   R)   R   R3   R-   t
   decompresst   picklet   loadsR<   (   R   t   data1t   data2R>   t   pickledt   saved(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt	   test_syncw   s    (   R   R   R   R+   R/   R4   R9   R?   RG   RU   R_   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR(   A   s   								t	   SimpleReqc           B@  s   e  Z d    Z RS(   c         C@  s   | |  _  d  S(   N(   t   name(   R   Ra   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   __init__   s    (   R   R   Rb   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyR`      s   t
   test_statec           B@  sV   e  Z e d   e d  e d  e d  g d  Z e d   e d  g d  Z RS(   R1   R0   R:   c         C@  s   x | D] } t  j |  q Wx! | D] } |  j | t  j  q% W|  j t  j d d  |  j t  j d d  |  j t  j d d  d  S(   NR1   i   R0   R:   i   (   R   t   task_acceptedR<   R   R.   R   (   R   t   requestst   requestt   req(    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   test_accepted   s    c         C@  sr   x | D] } t  j |  q W|  j t t  j  d  x | D] } t  j |  q> W|  j t t  j  d  d  S(   Ni   i    (   R   Rd   R.   t   lenR   t
   task_ready(   R   Re   Rf   (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt
   test_ready   s    (   R   R   R`   Rh   Rk   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyRc      s   					(   t
   __future__R    RY   R   t   celery.datastructuresR   t   celery.exceptionsR   R   t   celery.workerR   t   celery.tests.caseR   R   R   R	   t   dictR   t
   PersistentR   R!   R(   t   objectR`   Rc   (    (    (    s@   /tmp/pip-unpacked-wheel-gV1wwp/celery/tests/worker/test_state.pyt   <module>   s   E