
O'^c           @@  s7  d  d l  m Z d  d l Z d  d l 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 m Z m Z m Z d  d l m Z 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  m! Z! m" Z" m# Z# m$ Z$ d e% f d     YZ& d e j' f d     YZ( e( e _) d  d l m* Z* d e+ f d     YZ, d e% f d     YZ- d e% f d     YZ. d e* j/ f d     YZ/ d e* j0 f d     YZ0 d e f d     YZ1 d e f d     YZ2 d    Z3 d! e f d"     YZ4 d# e f d$     YZ5 d S(%   i    (   t   absolute_importN(   t   dumpst   loads(   t   defaultdict(   t   contextmanager(   t   count(   t
   Connectiont   Exchanget   Queuet   Consumert   Producer(   t   InconsistencyErrort   VersionMismatch(   t   EmptyR   (   t   virtual(   t   eventio(   t   Caset   ContextMockt   Mockt   callt   module_existst   skip_if_not_modulet   patcht	   JSONEqualc           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s   | |  _  d  S(   N(   t   expected(   t   selfR   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __init__   s    c         C@  s   t  |  t  |  j  k S(   N(   R   R   (   R   t   other(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __eq__   s    c         C@  s   |  j  S(   N(   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __str__    s    c         C@  s   d |  j  f S(   Ns   (json)%r(   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __repr__#   s    (   t   __name__t
   __module__R   R   R   R   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s   			t   _pollc           B@  s   e  Z d    Z d   Z RS(   c         C@  s$   | t  j @r  |  j j |  n  d  S(   N(   R   t   READt   _rfdt   add(   R   t   fdt   flags(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   register)   s    c         C@  sF   g  } x9 |  j  D]. } | j r | j | j   t j f  q q W| S(   N(   R#   t   datat   appendt   filenoR   R"   (   R   t   timeoutt   eventsR%   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   poll-   s
    	#(   R   R    R'   R-   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR!   '   s   	(   t   redist   ResponseErrorc           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR/   :   s   t   Clientc           B@  s   e  Z i  Z e e  Z e e  Z d Z	 d d d d   Z
 d   Z d   Z d   Z d   Z d   Z d   Z d   Z e Z d   Z d	   Z e Z d
   Z d   Z d   Z d d  Z d   Z d   Z d   Z d   Z d   Z d e f d     YZ  d   Z! d   Z" d   Z# RS(   c         K@  s1   g  |  _  d  |  _ t |  _ |  j |   |  _ d  S(   N(   t   _calledt   Nonet   _connectiont   Falset   bgsave_raises_ResponseErrort   _sconnectiont
   connection(   R   t   dbt   portt   connection_poolt   kwargs(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   D   s    			c         C@  s)   |  j  j d  |  j r% t    n  d  S(   Nt   BGSAVE(   R1   R)   R5   R/   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   bgsaveJ   s    	c         C@  s   |  j  j | d   d  S(   N(   t   queuest   popR2   (   R   t   key(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   deleteO   s    c         C@  s   | |  j  k p | |  j k S(   N(   R>   t   sets(   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   existsR   s    c         C@  s   | |  j  | | <d  S(   N(   t   hashes(   R   R@   t   kt   v(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   hsetU   s    c         C@  s   |  j  | j |  S(   N(   RD   t   get(   R   R@   RE   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   hgetX   s    c         C@  s   |  j  | j | d   d  S(   N(   RD   R?   R2   (   R   R@   RE   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   hdel[   s    c         G@  s   |  j  | j |  d  S(   N(   RB   R$   (   R   R@   t   membert   args(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   sadd^   s    c         C@  s   |  j  j | t    S(   N(   RB   RH   t   set(   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   smembersb   s    c         G@  s   |  j  j | d   d  S(   N(   RB   R?   R2   (   R   R@   RL   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   sreme   s    c         C@  s.   y |  j  | j   SWn t k
 r) d SXd  S(   Ni    (   R>   t   qsizet   KeyError(   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   lleni   s    c         C@  s   |  j  | j |  d  S(   N(   R>   t
   put_nowait(   R   R@   t   value(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   lpusho   s    c         K@  st   |  j  j j j   \ } } | | k s- t  g  |  j  j _ | d k rp |  j | d  } | rd | St    n  d  S(   Nt   BRPOPgMbP?(   R7   t   _sockR(   R?   t   AssertionErrort   brpopR   (   R   R7   t   typet   optionst   cmdR>   t   item(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   parse_responser   s    c         C@  sI   | d } y |  j  | j d |  } Wn t k
 r: n X| | f Sd  S(   Ni    R+   (   R>   RH   R   (   R   t   keysR+   R@   R^   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRZ   |   s    
c         C@  s-   y |  j  | j   SWn t k
 r( n Xd  S(   N(   R>   t
   get_nowaitRR   (   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   rpop   s    c         C@  s   | |  j  k S(   N(   R1   (   R   RE   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __contains__   s    c         C@  s
   t  |   S(   N(   t   Pipeline(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   pipeline   s    c         C@  s
   t  |  S(   N(   t   str(   R   RU   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   encode   s    c         C@  s   t    |  j | <d  S(   N(   t   _QueueR>   (   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt
   _new_queue   s    R6   c           B@  s?   e  Z e Z d  e f d     YZ d   Z d   Z d   Z RS(   t   _socketc           B@  s5   e  Z e Z e d   Z d   Z d   Z d   Z RS(   i   c         G@  s   t  |  j  |  _ g  |  _ d  S(   N(   t   nextt   filenost   _filenoR(   (   R   RL   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s    c         C@  s   |  j  S(   N(   Rm   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR*      s    c         C@  s   | |  _  d  S(   N(   t   blocking(   R   Rn   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   setblocking   s    (	   R   R    t   TrueRn   R   Rl   R   R*   Ro   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRj      s
   		c         C@  s   | |  _  |  j   |  _ d  S(   N(   t   clientRj   RX   (   R   Rq   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s    	c         C@  s   t  |  _ d  S(   N(   Rp   t   disconnected(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt
   disconnect   s    c         G@  s   |  j  j j | | f  d  S(   N(   RX   R(   R)   (   R   R]   RL   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   send_command   s    (	   R   R    R4   Rr   t   objectRj   R   Rs   Rt   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR6      s
   		c         C@  s   i d d 6S(   Ni   t   foo(    (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   info   s    c         @  s5   |  j    d t f   f d     Y} |   |  _ |  S(   Nt   ConnectionPoolc           @  s   e  Z   f d    Z RS(   c         @  s     S(   N(    (   R   RL   R;   (   R7   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   get_connection   s    (   R   R    Ry   (    (   R7   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRx      s   (   R7   Ru   R:   (   R   RL   R;   Rx   (    (   R7   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   pubsub   s    	c         C@  s   d t  |   f S(   Ns   <MockClient: %r(   t   id(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s    N($   R   R    R>   R   RN   RB   t   dictRD   R2   t
   shard_hintR   R=   RA   RC   RG   RI   RJ   RM   t   zaddRO   RP   t   zremRS   RV   R_   RZ   Rb   Rc   Re   Rg   Ri   Ru   R6   Rw   Rz   R   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR0   >   s:   												
								Rd   c           B@  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C@  s   | |  _  g  |  _ d  S(   N(   Rq   t   stack(   R   Rq   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s    	c         C@  s   |  S(   N(    (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt	   __enter__   s    c         G@  s   d  S(   N(    (   R   t   exc_info(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __exit__   s    c         @  s0      j  k r%    f d   } | S j    S(   Nc          @  s)    j  j t  j    |  | f   S(   N(   R   R)   t   getattrRq   (   RL   R;   (   R@   R   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _add   s    %(   t   __dict__(   R   R@   R   (    (   R@   R   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   __getattr__   s    c         C@  sB   t  |  j  } g  |  j (g  | D] \ } } } | | |   ^ q  S(   N(   t   listR   (   R   R   t   funRL   R;   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   execute   s    
(   R   R    R   R   R   R   R   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRd      s
   				
t   Channelc           B@  s\   e  Z e Z d    Z e d  Z e d  Z e d d   Z	 d   Z
 d   Z d   Z RS(   c         C@  s   t  S(   N(   R0   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _get_async_client   s    c         C@  s   t    S(   N(   R0   (   R   t   async(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _create_client   s    c         C@  s   t    S(   N(   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt	   _get_pool   s    c         c@  s!   | d  k	 r | n	 |  j   Vd  S(   N(   R2   R   (   R   Rq   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   conn_or_acquire   s    c         C@  s   t  S(   N(   R/   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _get_response_error   s    c         K@  s   |  j  j |  d  S(   N(   Rq   Ri   (   R   t   queueR;   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRi      s    c         C@  s   t  t    S(   N(   Rd   R0   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRe      s    N(   R   R    R0   R   R4   R   R   R   R2   R   R   Ri   Re   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s   			t	   Transportc           B@  s   e  Z e Z d    Z RS(   c         C@  s   t  f t f f S(   N(   RR   t
   IndexError(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _get_errors   s    (   R   R    R   R   (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR      s   t   test_Channelc           B@  s<  e  Z e d   d    Z d   Z 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 d   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   d&    Z' d'   Z( e d   d(    Z) d)   Z* e d   d*    Z+ e d   d+    Z, d,   Z- d-   Z. e d   d.    Z/ e d   d/    Z0 e d   d0    Z1 d1   Z2 e d   d2    Z3 RS(3   R.   c         C@  s"   |  j    |  _ |  j j |  _ d  S(   N(   t   create_connectionR7   t   default_channelt   channel(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   setUp  s    c         K@  s'   | j  d i t d 6 t d t |  S(   Nt   transport_optionst   fanout_patternst	   transport(   t
   setdefaultRp   R   R   (   R   R;   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR     s    t   test_uniq_tagc         C@  s   |  j     } | j } | j |  | j |  | j | | |  | j d  } | j | | |  | j j | g  \ } } |  j	 | |  |  j
 |  | j t |   } | j SWd  QXd  S(   Ns   quick brown fox(   R   R   t   exchange_declaret   queue_declaret
   queue_bindt   prepare_messaget   basic_publishRq   RZ   t   assertEqualt
   assertTruet   message_to_pythonR   t   delivery_tag(   R   t   nt   conn1t   chant   msgt   qt   payloadt   pymsg(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _get_one_delivery_tag  s    	c         C@  s   t    } xs t d  D]e } |  j   } |  j | |  | j |  |  j t   t |  Wd  QX|  j t	 |  d  q Wd  S(   Nid   i$   (
   RN   t   rangeR   t   assertNotInR$   t   assertRaisest
   ValueErrort   intR   t   len(   R   t   seent   it   tag(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_delivery_tag_is_uuid  s    	c         C@  sR   t  d t d i t d 6 } | j   } |  j | j  |  j | j t j  d  S(   NR   R   t   ack_emulation(	   R   R   R4   R   t   assertFalseR   R   t   QoSR   (   R   t   connR   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_disable_ack_emulation$  s
    c         @  s   t  d d  } | g  t  d d   d t f     f d     Y  d t f   f d     Y} t d |  } t    j _ |  j t   | j   Wd  QX| j	 j
   | j	 j   d  g  |  j t   | j   Wd  QX|  j | j	 j  d  S(	   Nt   namet   poolRq   t   XChannelc           @  s,   e  Z    f d    Z e  f d  Z RS(   c         @  s*    d |  _  t   |   j | |   d  S(   Ni    (   t   _poolt   superR   (   R   RL   R;   (   R   t   pool_at_init(    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   4  s    c         @  s     S(   N(    (   R   R   (   Rq   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   8  s    (   R   R    R   R4   R   (    (   R   Rq   R   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   2  s   t
   XTransportc           @  s   e  Z   Z RS(    (   R   R    R   (    (   R   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   ;  s   R   (   R   R   R   R   t   RuntimeErrorRw   t   side_effectR   R   Rs   t   assert_called_witht
   reset_mockR2   R   t   called(   R   R   R   R   (    (   R   Rq   R   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_redis_info_raises-  s    	"		c         C@  sP   d  |  j _ |  j j   t d d  } |  j _ |  j j   | j j   d  S(   NR   R   (   R2   R   R   t   _after_forkR   Rs   R   (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_after_forkJ  s
    c         C@  s&   |  j  |  j j   |  j j    d  S(   N(   t   assertNotEqualR   t   _next_delivery_tag(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_next_delivery_tagR  s    c   	   	   C@  s  t  d d  } i d d 6} t |  } t  d d  } |  j _ d d g | _ |  j j | d d	 |  | j j t d |  t d |  g  | j j	   i d
 d 6i d d 6d 6} t
 | d d t } t t
 | d |  } |  j j | d d	 |  | j j t d t |   t d t |   g  t   | j _ t d  0 } |  j j | d d	 |  |  j | j  Wd  QXd  S(   NR   Rq   t   BODYt   bodyt   _lookupt   georget   elainet   ext   rkeyt   BODY2i   s   x-funnyt   headerst   redelivereds   kombu.transport.redis.crit(   R   R   R   R   t   return_valuet   _do_restore_messaget   rpusht   assert_has_callsR   R   R|   Rp   R   RR   R   R   R   R   (	   R   Rq   t   pl1t   spl1t   lookupt   pl2t   headers_aftert   spl2t   crit(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_do_restore_messageX  s.    					c      
   C@  s  t  d d  } t d  q} d | _ t  d d  } |  j _ |   } t   | _ t  d d  } |  j _ | j j } t  d d	  } | | j _ t  d d
  } | | j	 _ t  d d  } d | j _ |  j j |  | j j   |  j j }	 |  j | j  | j }
 | j j |	 |
  | j	 j |	 |
  | j j   | d  f | j _ |  j j |  | j |  | j d d d | t  Wd  QXd  S(   NR   t   messages   kombu.transport.redis.loadst   Mt   EXt   RKRq   R   s	   pipe.hgets   pipe.hget.hdelt   result(   R   R   R   (   NN(   R   R   R   R   R   R   Re   R   RI   RJ   R2   R   t   _restoreR   t   unacked_keyR   R   R   R4   (   R   R   R   Rq   t   restoret   pipet	   pipe_hgett   pipe_hget_hdelR   R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_restorey  s6    			c         @  s|  t  d d    |  j _         f d   } |   _ d d d g   j _ t j |  j  } t  d d
  } | _ d | _	 | j
   |  j   j j  |  j | j	 d  d | _	 | j
   | j t d    t d    t d    g  |  j | j	 d  d | _	 | j   g    j _ | j
   |  j | j  |  j | j	 d  d | _	 t j     j _ | j
   d  S(   NR   Rq   c          @  s
   t     S(   N(   Rd   (   RL   R;   (   Rq   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR     s    i   i
   i   i   i   i   t   restore_by_tagi    (   i   i
   (   i   i   (   i   i   (   R   R   R   Re   t   zrevrangebyscoreR   R.   R   R   t   _vrestore_countt   restore_visibleR   R   R   R   R   R   t	   MutexHeldt   setnxR   (   R   R   t   qosR   (    (   Rq   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_qos_restore_visible  s6    			
	
+	

	c         C@  s   |  j  j d d d d  |  j  j d d  |  j  j d d d d  |  j d |  j  j  |  j  j d t d  d  |  j d |  j  j	  |  j
 |  j  j j d  d  d  S(   Nt   exchanget   txconfanR[   t   fanoutR   t	   txconfanqi   (   R   R   R   R   t   assertInt   _fanout_queuest   basic_consumeR4   R2   t   active_fanout_queuesR   t   _fanout_to_queueRH   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt$   test_basic_consume_when_fanout_queue  s    c         C@  s   |  j  |  j j d   d  S(   Nt
   txaseqwewq(   t   assertIsNoneR   t   basic_cancel(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt&   test_basic_cancel_unknown_delivery_tag  s    c         C@  sI   t    |  j _ |  j j j   |  j j   |  j |  j j j j  d  S(   N(	   R   R   t	   subclientR  t   cleart
   _subscribeR   t	   subscribeR   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_subscribe_no_queues  s    c         C@  s   t    |  j _ |  j j j d  |  j j j d  |  j j j d d d d  |  j j   |  j |  j j j	 j
  |  j j j	 j \ } } |  j | d d d g  d  |  j j j _ |  j j   |  j j j j j   d  S(   Nt   at   bt    i    (   R  R  (   R  R  (   R   R   R
  R  R$   R  t   updateR  R   t
   psubscribeR   t	   call_argst   assertItemsEqualR2   R7   RX   t   connectR   (   R   t   s_argst   _(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_subscribe  s    c         C@  sE   |  j  j } t | _ |  j  j | d d d g  |  j | j  d  S(   Nt   unsubscribeR  i    (   R   R
  Rp   t
   subscribedt   _handle_messageR   (   R   t   s(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_handle_unsubscribe_message  s    	c         C@  sQ   |  j  |  j j |  j j d d d d g  i d d 6d d 6d d 6d d 6 d  S(   Nt   pmessaget   patternR   R(   R[   (   t   assertDictEqualR   R  R
  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_handle_pmessage_message  s    		c         C@  sN   |  j  |  j j |  j j d d d g  i d d 6d  d 6d d 6d d 6 d  S(   NR[   R   R(   R   (   R!  R   R  R
  R2   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_handle_message  s    		c         C@  s   |  j  |  j j    d  S(   N(   R  R   t   _brpop_start(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_brpop_start_but_no_queues  s    c         C@  s   t    } |  j _ d |  j j d <d d t i d d 6 g | j _ |  j j   \ } } |  j | i d d 6 |  j	 | d  d  S(   NR  R  R   t   worldt   hello(
   R   R   R
  R  R   R_   R   t   _receiveR!  R   (   R   R  R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_receive  s    c         C@  sn   t  |  j _ t   } |  j _ t d  | j _ |  j t	 j
   |  j j   Wd  QX|  j |  j j  d  S(   NRv   (   Rp   R   t
   _in_listenR   R
  RR   R_   R   R   R.   R   R(  R   (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_receive_raises  s    c         C@  sI   t    } |  j _ d  | j _ |  j t j   |  j j	   Wd  QXd  S(   N(
   R   R   R
  R2   R_   R   R   R.   R   R(  (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_receive_empty  s    c         C@  sU   t    } |  j _ d d d d g | j _ |  j t j   |  j j   Wd  QXd  S(   NR   s   /foo/i    R(   (	   R   R   R
  R_   R   R   R.   R   R(  (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt#   test_receive_different_message_Type!  s    c         C@  s_   t    } |  j _ t d  | j _ |  j t j   |  j j	   Wd  QX| j
 j j   d  S(   NRv   (   R   R   Rq   RR   R_   R   R   R.   R   t   _brpop_readR7   Rs   R   (   R   t   c(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_brpop_read_raises(  s
    c         C@  sI   t    } |  j _ d  | j _ |  j t j   |  j j	   Wd  QXd  S(   N(
   R   R   Rq   R2   R_   R   R   R.   R   R.  (   R   R/  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_brpop_read_gives_None1  s    c         C@  s   t    } |  j _ t    | _ |  j j d  | j j | j d  t d  | j _ |  j	 t   |  j j d  Wd  QXd  S(   NRW   Rv   (
   R   R   Rq   R_   t   _poll_errorR   R7   RR   R   R   (   R   R/  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_poll_error8  s    c         C@  sx   t    } |  j _ t    | _ |  j j d  | j j   t d  | j _ |  j t   |  j j d  Wd  QXd  S(   Nt   LISTENRv   (	   R   R   R
  R_   R2  R   RR   R   R   (   R   R/  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_poll_error_on_type_LISTENC  s    c         C@  sh   t  |  j _ t   } |  j _ i d d 6} |  j j d | d  |   j j d t t	 |    d  S(   NR&  R'  R   R  (
   R4   R   t   _in_pollR   R   t   _put_fanoutt   publishR   R   R   (   R   R/  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_put_fanoutN  s
    c         C@  s3  t  d d  } |  j _ i i i d d 6d 6d 6} |  j j d |  |   j j |  j j d d  t t |    i i i d d 6d 6d 6} |  j j d |  |   j j |  j j d d	  t t |    i i i  d 6d 6} |  j j d |  |   j j |  j j d d
  t t |    d  S(   NR   Rq   i   t   priorityt   delivery_infot
   propertiesR   i9  i	   i    (	   R   R   R   t   _putRV   R   t
   _q_for_priR   R   (   R   Rq   t   msg1t   msg2t   msg3(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_put_priorityV  s    %%c         C@  s   |  j  } t   | _ | j | j _ t   } | j _ t   } | j _ | j d d d d   | j	 d  | j
 | j d | j j d d d g   d  S(   NR   R   t   routing_keyR  (   R   (   R   R   R   Rq   R   RA   RP   t   _deleteR2   t   assert_any_callt   assert_called_once_witht   keyprefix_queuet   sept   join(   R   t   xRA   RP   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_deletek  s    	
c         C@  s   t    |  j _ |  j j |  j j _ t    } |  j j _ t | _ |  j |  j j d   | j	 d  t
 | _ |  j |  j j d   d  S(   NRv   (   R   R   R   Rq   R   RC   Rp   R   t
   _has_queueRE  R4   R   (   R   RC   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_has_queuey  s    		c         C@  s   t  |  j _ |  j j   d  S(   N(   Rp   R   t   closedt   close(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_when_closed  s    c         C@  sk   i d d 6d d 6|  j  _ d g |  j  _ t d d  |  j  _ |  j  j   |  j  j j t d  g  d  S(   NRv   R  t   barR   t   queue_delete(   Rv   R  (   RQ  R  (   R   R  t   auto_delete_queuesR   RR  RO  R   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt+   test_close_deletes_autodelete_fanout_queues  s
    c         C@  sL   t    } |  j _ |  j j   | j j _ |  j j   | j j j   d  S(   N(	   R   R   Rq   R/   R7   Rs   R   RO  R   (   R   R/  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_client_close_raises  s    c         C@  s9   |  j  t  $ d |  j j j _ |  j j   Wd  QXd  S(   Nt   dwqeq(   R   R   R   R7   Rq   t   virtual_hostt   _connparams(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt'   test_invalid_database_raises_ValueError  s    c         C@  s3   d |  j  j j _ |  j |  j  j   d d  d  S(   Ns   /123R8   i{   (   R   R7   Rq   RW  R   RX  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt"   test_connparams_allows_slash_in_db  s    c         C@  s3   d |  j  j j _ |  j |  j  j   d d  d  S(   Ni|   R8   (   R   R7   Rq   RW  R   RX  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_connparams_db_can_be_int  s    c         C@  sh   t  j j |  j d d t |  j d |  j j  t  j j |  j d d t |  j d |  j j  d  S(   NR   t   auto_deleteR   (	   R.   R   Ri   R   R4   R   RS  Rp   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_new_queue_with_auto_delete  s    c         C@  s3   d |  j  j j _ |  j |  j  j   d d  d  S(   Ns   george.vandelay.comt   host(   R   R7   Rq   t   hostnameR   RX  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt    test_connparams_regular_hostname  s    c         C@  sP   d d g } |  j  _ |  j  j d  |  j | d d g  |  j  j d  d  S(   Nt   kramert   jerryR   (   R   t   _queue_cyclet   _rotate_cycleR   (   R   t   cycle(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_rotate_cycle_ValueError  s    c         C@  s   d d  l  } t  j j |  j  } |  j |  t | d d   } z6 d | _ |  j t	   t  j j |  j  Wd  QXWd  | d  k	 r | | _ n  Xd  S(   Ni    t   VERSIONi   i   (   i   i   i    (
   R.   R   R   R   R   R   R2   Rg  R   R   (   R   t   Rt
   KombuRedist   Rv(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_async_client  s    	c         C@  s3   d d l  m } |  j t j j |  j  |  d  S(   Ni    (   R/   (   t   redis.exceptionsR/   t   assertIsR.   R   R   R   (   R   R/   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_response_error  s    c         C@  s  |  j  j } t d d  | _ i d d 6d d 6| j _ t d d  } t d d  } t j j | | |  | j j j	 | j
  | j j	 d	 | j j  |  j | j j j  | j j j d
 d
 } |   | j j j	   | j j t d | j d  t d | j d  g  d  S(   NR   Re  R4  i   RW   i   R   t   loopi
   i    (   R7   R   R   Re  t   fdsR.   R   t   register_with_event_loopt   on_poll_initR   t   pollert   call_repeatedlyt   maybe_restore_messagesR   t   on_tickR$   R   R  t   on_poll_startt
   add_readerR   R   t   on_readable(   R   R   R   Ro  Rw  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_register_with_event_loop  s     		c         C@  s   |  j  j } t d d  } | _ d  | j _ t j j | d  | j j	 d  | j j
   t d d  } t d d  | f } | | j _ |  j t   t j j | d  Wd  QXt d d  } | j | <t j j | d  | j	 | d  d  S(	   NR   t   cylei   R   R   i   t   callbacki    (   R7   R   R   Re  R2   Ry  R   R.   R   R   R   R   RR   t
   _callbacks(   R   R   Re  R   t   rett   cb(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_transport_on_readable  s    c         C@  s#   |  j  t j j |  j j   d  S(   N(   R   R.   R   R   R7   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_transport_get_errors  s    c         C@  s#   |  j  t j j |  j j   d  S(   N(   R   R.   R   t   driver_versionR7   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_transport_driver_version  s    c         C@  s   d d l  m } d t f d     Y} t | d d   } t | d d   } | | _ d  | _ z= t  j j |  j	 j
  } |  j |  |  j | | d  Wd  | d  k	 r | | _ n  | d  k	 r | | _ n  Xd  S(   Ni    (   t
   exceptionst   IDc           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   t	   DataErrort   InvalidDatai   (   R.   R  t	   ExceptionR   R2   R  R  R   R   R7   R   R   R   (   R   R  R  R  R  t   errors(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt/   test_transport_get_errors_when_InvalidData_used  s    		c         C@  s   |  j  } t | _ | j d } | j j | d  |  j | j d  d g  | j j |  |  j	 t
   |  j  j d  Wd  QXd  S(   Nt   celerys   celeryceleryR  (   R  R  R  (   R   R4   R6  RG  Rq   RM   t   assertListEqualt	   get_tableRP   R   R   (   R   R   R@   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_empty_queues_key  s    		
c         C@  so   t  d  ] t d  J } | j j   } |  j t | d t j j   |  j | d d  Wd  QXWd  QXd  S(   Ns,   kombu.transport.redis.Channel._create_clients   redis+socket:///tmp/redis.sockt   connection_classt   paths   /tmp/redis.sock(	   R   R   R   RX  R   t
   issubclassR.   t   UnixDomainSocketConnectionR   (   R   R   t
   connparams(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_socket_connection)  s    	(4   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-  R0  R1  R3  R5  R9  RB  RK  RM  RP  RT  RU  RY  RZ  R[  R]  R`  Rf  Rk  Rn  Rz  R  R  R  R  R  R  (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR     sb   		
						!	!	%																																t
   test_Redisc           B@  s   e  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 RS(   R.   c         C@  sC   t  d t  |  _ t d d d |  _ t d |  j d  |  _ d  S(   NR   R  R[   t   direct(   R   R   R7   R   R   R   R   (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR   7  s    c         C@  s   |  j  j   d  S(   N(   R7   RO  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   tearDown=  s    c         C@  s   |  j  j   } t | |  j d d } |  j |  j   | j i d d 6 |  j |  j |  j   j	 i d d 6 |  j
 |  j |  j    |  j
 |  j |  j    |  j
 |  j |  j    d  S(   NRC  R  R&  R'  (   R7   R   R
   R   R   t   declareR8  R!  RH   R   R  (   R   R   t   producer(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_publish__get@  s    c         @  s   t  d t  } | j   } t | |  j d d } t | d |  j g } | j i d d 6 g      f d   } | j |  | j	   |  j
 | | j j j  zJ | j d d	  |  j    |  j t j   | j d d
  Wd  QXWd  | j   Xd  S(   NR   RC  R  R>   t   world2t   hello2c         @  s     j  |   | j   d  S(   N(   R)   t   ack(   t   message_dataR   (   t	   _received(    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR|  V  s    R+   i   g{Gz?(   R   R   R   R
   R   R	   R   R8  t   register_callbackt   consumeR   R7   Re  t	   _channelst   drain_eventsR   R   t   socketR+   RO  (   R   R7   R   R  t   consumerR|  (    (   R  sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_publish__consumeM  s     
c         C@  s   |  j  j   } t | |  j d d } |  j |  j   x/ t d  D]! } | j i d | f d 6 qG W|  j | j	 d  d  |  j |  j |  j
   d  | j   d  S(   NRC  R  i
   s   world-%sR'  (   R7   R   R
   R   R   R  R   R8  R   t   _sizet   purgeRO  (   R   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt
   test_purgef  s    c         C@  su   t  d d d t  j   t  d d d t  j   t  d d d t  j   |  j t   t  d  j   Wd  QXd  S(   NRW  i   R   t   1s   /1s   redis:///foo(   R   R   R   R   R  (   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_db_valuesr  s    c         C@  sN   t  d d  d t  j   } | j   t  d d d t  j   } | j   d  S(   NR9   R   i'  (   R   R2   R   R   RO  (   R   t   c1t   c2(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_db_port  s    
c         C@  sL   t  d t  j   } | j j } | j j | j   |  j | | j  d  S(   NR   (	   R   R   R   R7   Re  Rq   RO  R   R  (   R   R/  Re  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_poller_not_active  s
    

c         C@  s/   t  d t  j   } t | j _ | j   d  S(   NR   (   R   R   R   Rp   Rq   R5   RO  (   R   R/  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_ResponseError  s    c         C@  s[   t  d t  j   } | j j } | j j } | j   |  j | j  |  j | j  d  S(   NR   (	   R   R   R   Rq   R7   R
  RO  R   Rr   (   R   R/  R   t   conn2(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_disconnects  s    
c         C@  s@   |  j  j   } |  j t   | j d  Wd  QX| j   d  S(   Ns   does-not-exist(   R7   R   R   R   t   _getRO  (   R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get__Empty  s    c         @  s8   t    \ } } t | |    f d    } |   d  S(   Nc          @  se   t  d t  }  |  j   }   j | j    j | j    j |  j j    j |  j j  d  S(   NR   (	   R   R   R   R   R0   R/   R   t   connection_errorst   channel_errors(   R   R   (   R   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   _do_test  s    (   t   _redis_modulesR   (   R   t   myredisR  R  (    (   R   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyRk    s    	(   R   R    R   R   R  R  R  R  R  R  R  R  R  R  Rk  (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR  5  s   										c          C@  s   d t  f d     Y}  d t  f d     Y} d t  f d     Y} d t  f d     Y} d	 t  f d
     Y} t j d  } |  | _ | | _ | | _ | | _ | | _ d t f d     Y} t j d  } | | _	 | | _
 | | f S(   Nt   ConnectionErrorc           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   t   AuthenticationErrorc           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   R  c           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   t   InvalidResponsec           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   R/   c           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR/     s   s   redis.exceptionst   Redisc           B@  s   e  Z RS(    (   R   R    (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   R.   (   R  t   typest
   ModuleTypeR  R  R  R  R/   Ru   R  R  (   R  R  R  R  R/   R  R  R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s     							t   test_MultiChannelPollerc           B@  s   e  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 d d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   R.   c         C@  s   t  j |  _ d  S(   N(   R.   t   MultiChannelPollert   Poller(   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR     s    c         C@  s  |  j    } g  | _ | j   t d d  | _ t d d  | _ t d d  } | g | _ g  | _ g  | _ | j   d g | _ d g | _ t | j	 j
 _ | j   | j j |  |  j | j j  t | j	 j
 _ | j j   | j   | j j |  | j j |  d  S(   NR   t   _register_BRPOPt   _register_LISTENt   chan1t   q1t   q2(   R  R  Rw  R   R  R  t   active_queuesR  R4   R   t   can_consumeR   R   R   R   Rp   R   (   R   t   pR  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_on_poll_start  s*    	
		


c         C@  s   |  j    } t d d  } g  | _ t d d  } | j |  |  j | j |  | g | _ | j |  | j j j d | j	  d  S(   NR   R  Rs  t   num(
   R  R   R  Rr  Rm  Rs  R   R   R   t   unacked_restore_limit(   R   R  R  Rs  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_on_poll_init  s    	c         C@  s   |  j    } t d d  } | d f | j d <i t d d  d 6| _ t | j j _ | j d t	 j
  |  j | j d j  t | j j _ | j d t	 j
  | j d j   | j d t	 j  | j j d  | j d t	 j
 t	 j B d  S(   NR   R   RW   i   (   R  R   t   _fd_to_chant   handlersR4   R   R  R   t   handle_eventR.   R"   R   R   Rp   R   t   ERRR2  (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_handle_event  s    c         C@  s6   |  j    } i d d 6| _ |  j | j | j  d  S(   Ni   i   (   R  R  R!  Rp  (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_fds  s    c         C@  s   |  j    } t   } | _ | j j i d d 6d d 6d d 6 | j   |  j | j j d  | j j	 } |  j
 | d i  f d i  f d i  f g  d  S(   Ni   i   i   (   i   (   i   (   i   (   R  R   Rs  t   _chan_to_sockR  RO  R   t
   unregistert
   call_countt   call_args_listR  (   R   R  Rs  t   u_args(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_unregisters_fds  s    %
	c         C@  sR   |  j    } t   | _ | j j i d d 6 t d  | j j _ | j   d  S(   Ni   (	   R  R   Rs  R  R  RR   R  R   RO  (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt*   test_close_when_unregister_raises_KeyError(  s
    c         C@  s   |  j    } t   | _ t   | _ t   | _ t   | _ g  | j j _ g  | j j _ | j	   | j j
 j   | j j
 j   | j j
 j   d  S(   N(   R  R   Rs  R  R  R  t
   itervaluesR   t   valuesRO  R  R   (   R   R  (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_close_resets_state/  s    
c         @  s:  |  j    } t   | _ t   t   t   }   } t   }   j _ d | j _ i d |   | f 6| _ | j |   |  | j j	 j
 d  |  j | j d | | f  |  j | j |   | f |  | j j j
 | | j  d    j _   f d   } |   j j _ | j |   |    j j j
   d  S(   Ni
   i   c           @  s   t      j _ d  S(   N(   R   R7   RX   (    (   Rq   (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   after_connectedO  s    (   R  R   Rs  R7   RX   R*   R   R  t	   _registerR  R   t   assertTupleEqualR  R   R'   t
   eventflagsR2   R  R   (   R   R  R   R[   t   sockR  (    (   Rq   sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt)   test_register_when_registered_reregisters>  s      c         C@  s   |  j    } t   } d  | j j _ t   | _ t | _ | j	 |  |  j
 | j j d  |  j
 | j j d  t   | j j _ t | j | | j d f <t | _ | j	 |  |  j
 | j j d  |  j
 | j j d  d  S(   Ni   RW   (   R  R   R2   Rq   R7   RX   R  R4   R6  R  R   R$  R  Rp   R  (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_register_BRPOPV  s    			c         C@  s   |  j    } t   } d  | j j _ t | _ t   | _ | j	 |  | j j
 | | j d  |  j | j j d  |  j | j j d  t | _ t   | j j _ | j	 |  |  j | j j d  |  j | j j d  d  S(   NR4  i   (   R  R   R2   R
  R7   RX   R4   R*  R  R  R   R   R  R  Rp   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_register_LISTENh  s    			c   	      C@  s   | d  k r g  n | } | d  k r* g  n | } | d  k rB g  n | } |  j   } t   | _ | | j j _ t   | _ t   | _ t   } | g | _ | | _	 | | _
 | | f S(   N(   R2   R  R   Rs  R-   R   R  R  R  R  R  (	   R   R,   R>   t   fanoutst   _prt   _aqt   _afR  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt
   create_getz  s    			c         C@  s9   |  j    \ } } |  j t j   | j   Wd  QXd  S(   N(   R  R   R.   R   RH   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_no_actions  s    c         C@  sT   |  j    \ } } t j |  } t d d  | _ | j d  | j j d  d  S(   NR   s   Qos.acki  (   R  R.   R   R   R  t   rejectR   (   R   R  R   R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_qos_reject  s
    c         C@  sa   |  j  d d g  \ } } t | j j _ |  j t j   | j   Wd  QX| j	 j
 |  d  S(   NR>   t   a_queue(   R  Rp   R   R  R   R   R.   R   RH   R  R   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_brpop_qos_allow  s
    c         C@  sd   |  j  d d g  \ } } t | j j _ |  j t j   | j   Wd  QX|  j	 | j
 j  d  S(   NR>   R  (   R  R4   R   R  R   R   R.   R   RH   R   R  R   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_brpop_qos_disallow  s
    c         C@  sR   |  j  d d g  \ } } |  j t j   | j   Wd  QX| j j |  d  S(   NR  t   f_queue(   R  R   R.   R   RH   R  R   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_listen  s    c         C@  sn   |  j  d d t j f g  \ } } | d f | j d <|  j t j   | j   Wd  QX| j j	 d  d  S(   NR,   i   RW   (
   R  R   R  R  R   R.   R   RH   R2  R   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_receives_ERR  s
    $c         C@  sz   |  j  d d t j f d t j f g  \ } } | d f | j d <|  j t j   | j   Wd  QX| j j	 d  d  S(   NR,   i   RW   (
   R  R   R  R  R   R.   R   RH   R2  R   (   R   R  R   (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   test_get_receives_multiple  s    N(   R   R    R   R   R  R  R  R  R  R  R  R  R  R  R2   R  R  R  R  R  R  R  R  (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s&   																			t
   test_Mutexc           B@  s    e  Z e d   d d   Z RS(   R.   t   xxxc         C@  s   t  d d  } t d  } | | _ t | j _ t   | _ | j j } | | j _ t } t	 j
 | d d   t } Wd  QX|  j |  | j j d |  d | j _ t } t	 j
 | d d   t } Wd  QX|  j |  | j j   | | j _ t | j _ |  j t	 j  : t } t	 j
 | d d   t } Wd  QX|  j |  Wd  QXd | j _ |  j t	 j  : t } t	 j
 | d d   t } Wd  QX|  j |  Wd  QX|  j | j j  t | j _ t	 j	 j   | j _ t } t	 j
 | d d   t } Wd  QX|  j |  Wd  QXd  S(	   NR   Rq   s   kombu.transport.redis.uuidt   foo1id   t   yyyt   100i    (   R   R   R   Rp   R   R   Re   RH   R4   R.   t   MutexR   R   t   expireR   R   R   R   t   ttlR   t
   WatchErrort   watchR   (   R   t   lock_idRq   t   uuidR   t   held(    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt
   test_mutex  sL    	(   R   R    R   R  (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyR    s   	(6   t
   __future__R    R  R  t   anyjsonR   R   t   collectionsR   t
   contextlibR   t	   itertoolsR   t   kombuR   R   R   R	   R
   t   kombu.exceptionsR   R   t
   kombu.fiveR   Rh   t   kombu.transportR   t   kombu.utilsR   t   kombu.tests.caseR   R   R   R   R   R   R   Ru   R   t   _selectR!   R-   R.   R  R/   R0   Rd   R   R   R   R  R  R  R  (    (    (    sB   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_redis.pyt   <module>   s8   (4	  6{	"