σ
O'^c           @@ s©   d  d l  m Z m Z d  d l Z d  d l m Z d d l m Z m Z m	 Z	 m
 Z
 d d d  Z d	 e f d
     YZ d e f d     YZ d e f d     YZ d S(   i    (   t   absolute_importt   unicode_literalsN(   t   ConsumerMixini   (   t   Caset   Mockt   ContextMockt   patchu
   text/plainu   utf-8c         C@ s.   t  d d  } |  | _ | | _ | | _ | S(   Nt   nameu   Message(   R   t   bodyt   content_typet   content_encoding(   R   R	   R
   t   m(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   Message
   s
    			t   Consc           B@ s   e  Z d    Z RS(   c         C@ s―   t  d d  |  _ | |  j j _ |  j j |  _ |  j j |  _ |  j j |  _ |  j j |  _ |  j j |  _ |  j j |  _ |  j j	 |  _	 t
 d d  |  _ |  j |  j _ d  S(   NR   u   ConsumerMixinu   extra_context(   R   t   callst   get_consumerst   return_valuet   on_connection_revivedt   on_consume_readyt   on_consume_endt   on_iterationt   on_decode_errort   on_connection_errorR   t   extra_context(   t   selft	   consumers(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   __init__   s    (   t   __name__t
   __module__R   (    (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyR      s   t   test_ConsumerMixinc           B@ s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C@ sr   t  d d  } t  d d  } t | | g  } t  d d  } | _ t d d  } | _ | | _ | | | f S(   NR   u	   consumerAu	   consumerBu
   connectionu   est_connection(   R   R   t
   connectionR   t   establish_connectionR   (   R   t   Aconst   Bconst   ct   _connt   est(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   _context$   s    	c         C@ sε   |  j    \ } } } t | _ | j d t  } t |  | j j   | j j   | j j j   |  j	 | j
 j  | j j   | j j j d d  t |  t |  t |  t | _ |  j t   t |  Wd  QXd  S(   Nt   no_ackt   timeouti   (   R%   t   Falset   should_stopt   consumet   Truet   nextt	   __enter__t   assert_called_withR   t
   assertTrueR   t   calledR   R   t   drain_eventst   assertRaisest   StopIteration(   R   R"   R    R!   t   it(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_consume-   s     	



	c         @ sΉ   |  j    \   } } t   _   j d t  } t j   j j _	 |  j
 t j   t |  Wd  QX  f d   } |   j j _	   j d t  } |  j
 t   t |  Wd  QXd  S(   NR&   c          @ s   t    _ t j    d  S(   N(   R+   R)   t   sockett   error(   t   argst   kwargs(   R"   (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   se2G   s    	(   R%   R(   R)   R*   R+   R6   R7   R   R1   t   side_effectR2   R,   R3   (   R   R    R!   R4   R:   (    (   R"   s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt&   test_consume_drain_raises_socket_error?   s    	c         @ s{   |  j    \   } } t   _   j d t d d  }   f d   } |   j j _ |  j t	 j
   t |  Wd  QXd  S(   NR&   R'   i   c          @ s   t    _ t j    d  S(   N(   R+   R)   R6   R'   (   R8   R9   (   R"   (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   seT   s    	(   R%   R(   R)   R*   R+   R   R1   R;   R2   R6   R7   R,   (   R   R    R!   R4   R=   (    (   R"   s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt(   test_consume_drain_raises_socket_timeoutO   s    	c   	      C@ sσ   |  j    \ } } } | j   Ή \ } } } |  j | | j  |  j | | j  | j j   |  j | j j	  | j j
 d d } |   } |  j | j | j  |  j | j | j  | j j   | j j   Wd  QX| j j | |  d  S(   Ni    (   R%   t   Consumert   assertIsR   t   default_channelR   R.   R/   R   R0   t	   call_argsR   t   channelR-   R   (	   R   R"   R    R!   t   connRC   t   consumert   clst   subcons(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_Consumer_context[   s    	(   R   R   R%   R5   R<   R>   RH   (    (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyR   "   s
   					t   test_ConsumerMixin_interfacec           B@ s‘   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 RS(   c         C@ s   t    |  _ d  S(   N(   R   R"   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   setUpo   s    c         C@ s3   |  j  t   |  j j t   t    Wd  QXd  S(   N(   R2   t   NotImplementedErrorR"   R   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_get_consumersr   s    c         C@ s   |  j  |  j j    d  S(   N(   t   assertIsNoneR"   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_connection_revivedv   s    c         C@ s)   |  j  |  j j t   t   g    d  S(   N(   RM   R"   R   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_consume_readyy   s    c         C@ s&   |  j  |  j j t   t     d  S(   N(   RM   R"   R   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_consume_end~   s    c         C@ s   |  j  |  j j    d  S(   N(   RM   R"   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_iteration   s    c         C@ s[   t  d  } t d  = } |  j j | t d   |  j | j  | j j   Wd  QXd  S(   Nu   foou   kombu.mixins.error(	   R   R   R"   R   t   KeyErrorR/   R0   t   ackR.   (   R   t   messageR7   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_decode_error   s
    c         C@ sB   t  d  0 } |  j j t d  d  |  j | j  Wd  QXd  S(   Nu   kombu.mixins.warnu   fooi   (   R   R"   R   RR   R/   R0   (   R   t   warn(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_on_connection_error   s    c         C@ s&   |  j  j t   t     Wd  QXd  S(   N(   R"   R   R   (   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_extra_context   s    c         C@ s   |  j  |  j j  d  S(   N(   R/   R"   t   restart_limit(   R   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_restart_limit   s    c         C@ si   t  d d  } | |  j _ t f | _ |  j |  j j | j  t f | _ |  j |  j j | j  d  S(   NR   u
   connection(   R   R"   R   RR   t   connection_errorst   assertTupleEqualt
   ValueErrort   channel_errors(   R   RD   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_connection_errors   s    c         C@ s|   t  d d  } t  d d  } t d d  | _ t d d  | _ |  j j | |   Wd  QX| j j   | j j   d  S(   NR   u   Au   Bu   A.__enter__u   B.__enter__(   R   R   R-   R"   t   _consume_fromR.   (   R   t   at   b(    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test__consume_from   s    c         C@ su   t  d d  } | | j _ | |  j _ d |  j _ |  j j    } |  j |  Wd  QX| j j	 |  j j
 d  d  S(   NR   u
   connectioni   (   R   t   cloneR   R"   R   t   connect_max_retriesR   R/   t   ensure_connectionR.   R   (   R   RD   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_establish_connection©   s    	c         C@ sM   t  d d  } t f | _ d | _ | |  j _ d   } |  j j |  d  S(   NR   u
   connectionc           S@ s   t  d   d  S(   Nu   foo(   RR   (    (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   raisesΌ   s    (    (   R   RR   R[   R^   R"   R   t   maybe_conn_error(   R   RD   Rh   (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_maybe_conn_error΅   s    		c         @ s~   t  d d  } |   j _ t f | _ d | _ t d d  }   j _   f d   } t   j _	 | | _
   j j   d  S(   NR   u
   connectionu	   c.consumec          @ s   t    j _ d g S(   Ni   (   R+   R"   R)   (   R8   R9   (   R   (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyR=   Η   s    (    (   R   R"   R   RR   R[   R^   R   R*   R(   R)   R;   t   run(   R   RD   R*   R=   (    (   R   s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_runΐ   s    		c         @ s―   t  d d  } |  j _ t f | _ d | _ t d d  }  j _ t d  T } d g      f d   } t	  j _
 | | _  j j    j | j  Wd  QXd  S(   NR   u
   connectionu	   c.consumeu   kombu.mixins.sleepi    c          @ s3     d d k r t   j _ n    d c d 7<  S(   Ni    i   (   R+   R"   R)   (   R8   R9   (   t   counterR   (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyR=   Χ   s    (    (   R   R"   R   RR   R[   R^   R   R*   R   R(   R)   R;   Rk   R/   R0   (   R   RD   R*   t   sleepR=   (    (   Rm   R   s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_run_restart_rate_limitedΞ   s    			c         @ s£   t  d d  } |   j _ t f | _ d | _ t d d  }   j _ t d  H }   f d   } t	   j _
 | | _   j j     j | j  Wd  QXd  S(   NR   u
   connectionu	   c.consumeu   kombu.mixins.warnc          @ s   t    j _ t d   d  S(   Nu   foo(   R+   R"   R)   RR   (   R8   R9   (   R   (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt	   se_raisesι   s    (    (   R   R"   R   RR   R[   R^   R   R*   R   R(   R)   R;   Rk   R/   R0   (   R   RD   R*   RV   Rp   (    (   R   s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   test_run_raisesα   s    		(   R   R   RJ   RL   RN   RO   RP   RQ   RU   RW   RX   RZ   R_   Rc   Rg   Rj   Rl   Ro   Rq   (    (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyRI   m   s"   												
				(   t
   __future__R    R   R6   t   kombu.mixinsR   t   caseR   R   R   R   R   R   R   RI   (    (    (    s9   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_mixins.pyt   <module>   s   "K