
O'^c           @@  s  d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l 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 m Z m Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z d  d	 l m Z d  d
 l  m! Z! m" Z" m# Z# m$ Z$ d  d l  m% Z% d  d l& m' Z' d Z( d   Z) d e* f d     YZ+ d e, f d     YZ- d e, f d     YZ. e$ e# d e! f d     Y  Z/ e$ e# d e! f d     Y  Z0 e$ e# d e! f d     Y  Z1 e$ e# d e! f d     Y  Z2 e$ e# d e! f d     Y  Z3 e$ e# d e! f d      Y  Z4 e$ e# d! e! f d"     Y  Z5 e$ e# d# e+ e5 f d$     Y  Z6 e$ e# d% e5 f d&     Y  Z7 e$ e# d' e5 f d(     Y  Z8 e$ e# d) e5 f d*     Y  Z9 e$ e# d+ e5 f d,     Y  Z: e$ e# d- e! f d.     Y  Z; e$ e# d/ e; f d0     Y  Z< e$ e# d1 e; f d2     Y  Z= e$ e# d3 e; f d4     Y  Z> e$ e# d5 e; f d6     Y  Z? e$ e# d7 e; f d8     Y  Z@ e$ e# d9 e; f d:     Y  ZA e$ e# d; e; f d<     Y  ZB e$ e# d= e; e+ f d>     Y  ZC e$ e# d? e; e+ f d@     Y  ZD e$ e# dA e; f dB     Y  ZE e$ e# dC e+ e! f dD     Y  ZF e$ e# e) dE e! f dF     Y   ZG e$ e# e) dG e! f dH     Y   ZH e$ e# e) dI e! f dJ     Y   ZI e$ e# e) dK e! f dL     Y   ZJ e$ e# dM e! f dN     Y  ZK e$ e# e) dO e! f dP     Y   ZL e$ e# e) dQ e! f dR     Y   ZM e$ e# e) dS e! f dT     Y   ZN e$ e# e) dU e! f dV     Y   ZO e$ e# e) dW e! f dX     Y   ZP e$ e# e) dY e+ e! f dZ     Y   ZQ d S([   i    (   t   absolute_importN(   t   Callable(   t   count(   t   wraps(   t   call(   t   Emptyt   keyst   ranget	   monotonic(   t   AuthenticationFailuret   Channelt
   Connectiont   ConnectionErrort   Messaget   NotFoundt   QoSt	   Transport(   t   Base64(   t   Caset   Mockt   case_no_pypyt   case_no_python3(   t   patch(   t   OrderedDicts   kombu.transport.qpidc         @  st   |  j   |  j  t t d    t      f d    } t      f d    } | |  _  | |  _ |  S(   s2   A decorator to disable runtime dependency checkings   .dependency_is_nonec         @  s#     j    } t | _  |   d  S(   N(   t   startt   Falset   return_value(   t   selft   mock_dependency_is_none(   t   dependency_is_none_patchert   setup(    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   around_setup#   s    	c         @  s     j     |   d  S(   N(   t   stop(   R   (   R   t   teardown(    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   around_teardown)   s    
(   t   setUpt   tearDownR   t   QPID_MODULER   (   t   clsR   R"   (    (   R   R   R!   sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt    disable_runtime_dependency_check   s    				t   ExtraAssertionsMixinc           B@  s&   e  Z d  Z d d  Z d d  Z RS(   sA   A mixin class adding assertDictEqual and assertDictContainsSubsetc         C@  s[   |  j  t t |   t t |    x, t |  D] } |  j  | | | |  q5 Wd S(   s9  
        Test that two dictionaries are equal.

        Implemented here because this method was not available until Python
        2.6. This asserts that the unique set of keys are the same in a and b.
        Also asserts that the value of each key is the same in a and b using
        the is operator.
        N(   t   assertEqualt   setR   (   R   t   at   bt   msgt   key(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   assertDictEqual6   s    	(c         C@  sC   x< t  |  D]. } |  j | |  |  j | | | |  q Wd S(   sF   
        Assert that all the key/value pairs in a exist in b.
        N(   R   t   assertInR)   (   R   R+   R,   R-   R.   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   assertDictContainsSubsetC   s    N(   t   __name__t
   __module__t   __doc__t   NoneR/   R1   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR(   3   s   t   QpidExceptionc           B@  s   e  Z d  Z d d d  Z RS(   sQ   
    An object used to mock Exceptions provided by qpid.messaging.exceptions
    c         C@  s,   t  t |   j |   | |  _ | |  _ d  S(   N(   t   supert	   Exceptiont   __init__t   codet   text(   R   R:   R;   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR9   Q   s    	N(   R2   R3   R4   R5   R9   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR6   L   s   t   BreakOutExceptionc           B@  s   e  Z RS(    (   R2   R3   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR<   W   s   t   TestQoS__init__c           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s"   t    |  _ t |  j  |  _ d  S(   N(   R   t   mock_sessionR   t   qos(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   _   s    c         C@  s   |  j  |  j j d  d  S(   Ni   (   R)   R?   t   prefetch_count(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt?   test__init__prefetch_default_set_correct_without_prefetch_valuec   s    c         C@  s&   t  |  j  } |  j | j d  d  S(   Ni   (   R   R>   R)   R@   (   R   t   qos_limit_two(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt'   test__init__prefetch_is_hard_set_to_onef   s    c         C@  s   |  j  |  j j t  d  S(   N(   t   assertIsInstanceR?   t   _not_yet_ackedR   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt)   test__init___not_yet_acked_is_initializedj   s    (   R2   R3   R#   RA   RC   RF   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR=   [   s   			t   TestQoSCanConsumec           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s   t    } t |  |  _ d  S(   N(   R   R   R?   (   R   t   session(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   r   s    	c         C@  s2   d |  j  _ g  |  j  _ |  j |  j  j    d  S(   Ni    (   R?   R@   RE   t
   assertTruet   can_consume(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt%   test_True_when_prefetch_limit_is_zerov   s    c         C@  s8   d |  j  _ d d g |  j  _ |  j |  j  j    d  S(   Ni   R+   R,   (   R?   R@   RE   RI   RJ   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt9   test_True_when_len_of__not_yet_acked_is_lt_prefetch_count{   s    c         C@  s;   d |  j  _ d d d g |  j  _ |  j |  j  j    d  S(   Ni   R+   R,   t   c(   R?   R@   RE   t   assertFalseRJ   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_False_when_len_of__not_yet_acked_is_eq_prefetch_count   s    (   R2   R3   R#   RK   RL   RO   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRG   n   s   			t   TestQoSCanConsumeMaxEstimatec           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  s"   t    |  _ t |  j  |  _ d  S(   N(   R   R>   R   R?   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#      s    c         C@  s)   d |  j  _ |  j |  j  j   d  d  S(   Ni    i   (   R?   R@   R)   t   can_consume_max_estimate(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt+   test_return_one_when_prefetch_count_eq_zero   s    c         C@  s;   d d g |  j  _ d |  j  _ |  j |  j  j   d  d  S(   NR+   R,   i   i   (   R?   RE   R@   R)   RQ   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_return_prefetch_count_sub_len__not_yet_acked   s    (   R2   R3   R#   RR   RS   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRP      s   		t
   TestQoSAckc           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  s"   t    |  _ t |  j  |  _ d  S(   N(   R   R>   R   R?   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#      s    c         C@  s\   t    } |  j j | d  |  j d |  j j  |  j j d  |  j d |  j j  d  S(   Ni   (   R   R?   t   appendR0   RE   t   ackt   assertNotIn(   R   t   message(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_ack_pops__not_yet_acked   s
    	c         C@  sI   t    } |  j j | d  |  j j d  |  j j j j d |  d  S(   Ni   RX   (   R   R?   RU   RV   RH   t   acknowledget   assert_called_with(   R   RX   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_ack_calls_session_acknowledge_with_message   s    	(   R2   R3   R#   RY   R\   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRT      s   		t   TestQoSRejectc           B@  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C@  s   t    |  _ t    |  _ t |  j  |  _ t t d  |  _ |  j j   |  _	 |  j	 j
 j |  _ |  j	 j
 j |  _ |  j	 j
 j |  _ d  S(   Ns   .qpid(   R   R>   t   mock_messageR   R?   R   R%   t
   patch_qpidR   t	   mock_qpidt	   messagingt   Dispositiont   mock_Dispositiont   RELEASEDt   mock_RELEASEDt   REJECTEDt   mock_REJECTED(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#      s    c         C@  s   |  j  j   d  S(   N(   R_   R    (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$      s    c         C@  sV   |  j  j |  j d  |  j d |  j  j  |  j  j d  |  j d |  j  j  d  S(   Ni   (   R?   RU   R^   R0   RE   t   rejectRW   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_reject_pops__not_yet_acked   s    c         C@  sk   |  j  j |  j d  |  j  j d d t |  j j |  j  |  j  j j	 j d |  j d |  j j
  d  S(   Ni   t   requeueRX   t   disposition(   R?   RU   R^   Rh   t   TrueRc   R[   Re   RH   RZ   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_reject_requeue_true   s    	c         C@  sn   t    } |  j j | d  |  j j d d t |  j j |  j  |  j j j	 j d | d |  j j
  d  S(   Ni   Rj   RX   Rk   (   R   R?   RU   Rh   R   Rc   R[   Rg   RH   RZ   R   (   R   RX   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_reject_requeue_false   s    	(   R2   R3   R#   R$   Ri   Rm   Rn   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR]      s
   	
				t   TestQoSc           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s&   |  j  j   } d | f } | | f S(   s6   Create and return a mock message tag and delivery_tag.s
   message %s(   t   delivery_tag_generatort   next(   R   t   m_delivery_tagt   m(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   mock_message_factory   s    c         C@  s(   x! t  |  D] } |  j |  q Wd S(   s1   Add N mock messages into the passed in qos objectN(   R   t   add_message_to_qos(   R   t   nR?   t   i(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   add_n_messages_to_qos   s    c         C@  s&   |  j    \ } } | j | |  d S(   s   Add a single mock message into the passed in qos object.

        Uses the mock_message_factory() to create the message and
        delivery_tag.
        N(   Rt   RU   (   R   R?   Rs   Rr   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRu      s    c         C@  sI   t    |  _ t |  j  |  _ t |  j d d |  _ t d  |  _ d  S(   NR@   i   i   (   R   R>   R   t   qos_no_limitt   qos_limit_2R   Rp   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#      s    c   	      C@  s   |  j  } |  j   \ } } |  j   \ } } | j | |  t | j  } |  j | d  | j | } |  j | |  | j | |  t | j  } |  j | d  | j | } |  j | |  d S(   s   Append two messages and check inside the QoS object that they
        were put into the internal data structures correctly
        i   i   N(   Ry   Rt   RU   t   lenRE   R)   t   assertIs(	   R   R?   t   m1t   m1_tagt   m2t   m2_tagt   length_not_yet_ackedt   checked_message1t   checked_message2(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_append   s    	c         C@  s   |  j  } |  j   \ } } |  j   \ } } | j | |  | j | |  | j |  } | j |  } |  j | |  |  j | |  d S(   s0   Append two messages, and use get to receive themN(   Ry   Rt   RU   t   getR|   (   R   R?   R}   R~   R   R   t   message1t   message2(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_get  s    	(   R2   R3   Rt   Rx   Ru   R#   R   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRo      s   						t   ConnectionTestBasec           B@  s!   e  Z e e d   d    Z RS(   s   .qpidc         C@  sQ   i d d 6d d 6d d 6d d 6d	 d
 6|  _  | j j |  _ t |  j    |  _ d  S(   Nt	   localhostt   hosti(  t   portt   tcpt	   transporti
   t   timeoutt	   ANONYMOUSt   sasl_mechanisms(   t   connection_optionsRa   R   t   mock_qpid_connectiont   conn(   R   R`   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    (   R2   R3   R   R%   R#   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   t   TestConnectionInitc           B@  s  e  Z d    Z d   Z d   Z d   Z e e d d e f e e d  e e d  d      Z	 e e d d e f e e d  e e d  d	      Z
 e e d d e f e e d  e e d  d
      Z e e d d e f e e d  e e d  d      Z e j e d d e f e e d  e e d d e d      Z e e d  e e d d e d     Z RS(   c         C@  s#   |  j  } |  j | |  j j   d  S(   N(   R   R/   R   (   R   t   modified_conn_opts(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_stores_connection_options*  s    	c         C@  s0   |  j  |  j j t  |  j  |  j j t  d  S(   N(   RD   R   t   channelst   listt
   _callbackst   dict(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_class_variables2  s    c         C@  s    |  j  } |  j j j |   d  S(   N(   R   R   t	   establishR[   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_establishes_connection6  s    	c         C@  s)   |  j  j j } |  j |  j j |  d  S(   N(   R   R   R   R|   R   t
   _qpid_conn(   R   t   created_conn(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt!   test_saves_established_connection<  s    s   .ConnectionErrort   news   .sys.exc_infos   .qpidc         C@  s   d } t  d |  } | | j j j _ d | _ y t |  j   |  _ WnT t	 k
 r } t
 j   } |  j | t   |  j | d d  |  j | d  n X|  j d  d  S(	   Ns-   connection-forced: Authentication failed(320)R;   R+   R,   i   i   s.   ConnectionError type was not mutated correctly(   R+   R,   N(   R6   Ra   R   R   t   side_effectR5   R   R   R   R	   t   syst   exc_infot   assertNotIsInstanceR|   t   assertIsNonet   fail(   R   R`   t   mock_exc_infoR;   t   my_conn_errort   errorR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt!   test_mutates_ConnError_by_message@  s    	c         C@  s   t  d d d d  } | | j j j _ d
 | _ y t |  j   |  _ WnT t	 k
 r } t
 j   } |  j | t   |  j | d d  |  j | d  n X|  j d	  d  S(   NR:   i@  R;   t   someothertextR+   R,   i   i   s.   ConnectionError type was not mutated correctly(   R+   R,   N(   R6   Ra   R   R   R   R5   R   R   R   R	   R   R   R   R|   R   R   (   R   R`   R   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_mutates_ConnError_by_codeR  s    	c         C@  s   t    } d | _ | | j j j _ d | _ y t |  j   |  _	 Wnd t
 k
 r } t j   } |  j t | t    |  j | d d k  |  j | d d k  n X|  j d  d S(	   s  
        Test for PLAIN connection via python-saslwrapper, sans cyrus-sasl-plain

        This test is specific for what is returned when we attempt to connect
        with PLAIN mech and python-saslwrapper is installed, but
        cyrus-sasl-plain is not installed.
        s@   Error in sasl_client_start (-4) SASL(-4): no mechanism availableR+   R,   i   i   s.   ConnectionError type was not mutated correctlyN(   R+   R,   N(   R6   R;   Ra   R   R   R   R5   R   R   R   R	   R   R   RI   t
   isinstanceR   (   R   R`   R   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test_connection__init__mutates_ConnError_by_message2c  s    			c         C@  s   t  d d d d  } | | j j j _ d | _ y t |  j   |  _ Wn) t	 k
 rq } |  j
 | j d k  n X|  j d  d  S(	   NR:   i  R;   R   R+   R,   s*   Connection should have thrown an exception(   R+   R,   N(   R6   Ra   R   R   R   R5   R   R   R   R8   RI   R:   R   (   R   R`   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_unknown_connection_error~  s    	t   channel_errorsc         C@  sQ   | j  j } t   } d | _ | | j _ |  j t   t |  j   Wd  QXd  S(   Ns#   some non auth related error message(   Ra   R   t   SyntaxErrorR;   R   R   t   assertRaisesR   (   R   R`   t   mock_Qpid_ConnectionR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_non_qpid_error_raises  s    		c         C@  sQ   | j  j } t   } d | _ | | j _ |  j t   t |  j   Wd  QXd  S(   Ns#   some non auth related error message(   Ra   R   t   IOErrorR;   R   R   R   R   (   R   R`   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_non_auth_conn_error_raises  s    		(   R2   R3   R   R   R   R   R   R%   R6   R   R   R   R   t   objectR   R   R   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR   &  s*   				%	t   TestConnectionClassAttributesc           B@  s   e  Z d    Z RS(   c         C@  s   |  j  t t j  d  S(   N(   R)   R
   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt'   test_connection_verify_class_attributes  s    (   R2   R3   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   t   TestConnectionGetQpidConnectionc           B@  s   e  Z d    Z RS(   c         C@  s8   t    |  j _ |  j j   } |  j |  j j |  d  S(   N(   R   R   R   t   get_qpid_connectionR|   (   R   t   returned_connection(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt#   test_connection_get_qpid_connection  s    (   R2   R3   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   t   TestConnectionClosec           B@  s   e  Z d    Z RS(   c         C@  s3   t    |  j _ |  j j   |  j j j j   d  S(   N(   R   R   R   t   closet   assert_called_once_with(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_connection_close  s    (   R2   R3   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   t   TestConnectionCloseChannelc           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s&   t  t |   j   t   |  j _ d  S(   N(   R7   R   R#   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s3   t    } |  j j |  |  j j j j |  d  S(   N(   R   R   t   close_channelR   t   removeR   (   R   t   mock_channel(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt?   test_connection_close_channel_removes_channel_from_channel_list  s    	c         C@  s2   t  d t    |  j j _ |  j j t     d  S(   NR   (   R   t
   ValueErrorR   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt=   test_connection_close_channel_handles_ValueError_being_raised  s    c         C@  sQ   t    } t | _ t  d t    |  j j _ |  j j |  |  j | j  d  S(   NR   (	   R   R   t
   connectionR   R   R   R   R   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt<   test_connection_close_channel_set_channel_connection_to_None  s
    		(   R2   R3   R#   R   R   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   			t   ChannelTestBasec           B@  s   e  Z d    Z d   Z RS(   c         C@  sh   t  t d  |  _ |  j j   |  _ |  j j |  _ t   |  _ t   |  _	 t
 |  j |  j	  |  _ d  S(   Ns   .qpidtoollibs(   R   R%   t   patch_qpidtoollibsR   t   mock_qpidtoollibst   BrokerAgentt   mock_broker_agentR   R   R   R
   t   channel(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  j   d  S(   N(   R   R    (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$     s    (   R2   R3   R#   R$   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   	t   TestChannelPurgec           B@  sT   e  Z d    Z d   Z d   Z d   Z d   Z e e d d e	 d    Z
 RS(   c         C@  s#   t  t |   j   t   |  _ d  S(   N(   R7   R   R#   R   t
   mock_queue(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s6   |  j  j |  j  |  j j j } | j |  j  d  S(   N(   R   t   _purgeR   R   R   t   getQueueR   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_gets_queue  s    c         C@  sR   i d d 6} |  j  j j j } | | _ |  j j |  j  |  j | j j	  d  S(   Ni    t   msgDepth(
   R   R   R   t   valuesR   R   R   RN   t   purget   called(   R   R   t	   queue_obj(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_does_not_call_purge_if_message_count_is_zero  s
    	c         C@  sO   i d d 6} |  j  j j j } | | _ |  j j |  j  | j j d  d  S(   Ni   R   (	   R   R   R   R   R   R   R   R   R[   (   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt#   test_purges_all_messages_from_queue  s
    	c         C@  sQ   i d d 6} |  j  j j j } | | _ |  j j |  j  } |  j | d  d  S(   Ni   R   (   R   R   R   R   R   R   R   R)   (   R   R   R   t   result(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_returns_message_count  s
    	s	   .NotFoundR   c         C@  s2   d  |  j j j _ |  j t |  j j |  j  d  S(   N(	   R5   R   R   R   R   R6   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_raises_channel_error_if_queue_does_not_exist  s    (   R2   R3   R#   R   R   R   R   R   R%   R6   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   					t   TestChannelPutc           B@  s:   e  Z e e d   d    Z e e d   d    Z RS(   s   .qpidc         C@  s   d } t    } | j j } |  j j | |  d j |  } |  j j j j	 |  | j	 d | d d   |  j j j j } | j j	 | j d t | j j	   d  S(   Nt
   routingkeys.   {0}; {{assert: always, node: {{type: queue}}}}t   contentt   subjectt   sync(   R   Ra   R   R   t   _putt   formatR   RH   t   senderR[   R5   R   t   sendRl   R   (   R   R`   t   routing_keyR^   t   mock_Message_clst   address_strt   mock_sender(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_channel__put_onto_queue  s    				c         C@  s   d } d } t    } | j j } |  j j | | |  d j | |  } |  j j j j	 |  | j	 d | d |  |  j j j j
 } | j j	 | j
 d t | j j	   d  S(   NR   t
   myexchanges2   {0}/{1}; {{assert: always, node: {{type: topic}}}}R   R   R   (   R   Ra   R   R   R   R   R   RH   R   R[   R   R   Rl   R   (   R   R`   t   mock_routing_keyt   mock_exchange_nameR^   R   t   addrstrR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_channel__put_onto_exchange*  s    			(   R2   R3   R   R%   R   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR     s   t   TestChannelGetc           B@  s   e  Z d    Z RS(   c         C@  s}   t    } |  j j |  } |  j j j j |  |  j j j j } | j j d d  | j	 j   |  j
 | j j |  d  S(   NR   i    (   R   R   t   _getR   RH   t   receiverR   R   t   fetchR   R|   (   R   R   R   t   mock_rx(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_channel__getE  s    	(   R2   R3   R   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR   A  s   t   TestChannelClosec           B@  sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C@  s   t  t |   j   t j |  j d  |  _ |  j j   |  _ t	   |  _
 t	   |  _ i |  j
 d 6|  j d 6|  j _ t |  j _ d  S(   Nt   basic_canceli   i   (   R7   R   R#   R   R   R   t   patch_basic_cancelR   t   mock_basic_cancelR   t   mock_receiver1t   mock_receiver2t
   _receiversR   t   closed(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   U  s    c         C@  s$   |  j  j   t t |   j   d  S(   N(   R   R    R7   R   R$   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$   `  s    c         C@  s$   |  j  j   |  j |  j  j  d  S(   N(   R   R   RI   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt'   test_channel_close_sets_close_attributed  s    c         C@  s3   |  j  j   |  j j t d  t d  g  d  S(   Ni   i   (   R   R   R   t   assert_has_callsR   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt6   test_channel_close_calls_basic_cancel_on_all_receiversh  s    c         C@  s'   |  j  j   |  j j j |  j   d  S(   N(   R   R   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test_channel_close_calls_close_channel_on_connectionl  s    c         C@  s$   |  j  j   |  j  j j j   d  S(   N(   R   R   t   _brokerR   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt.   test_channel_close_calls_close_on_broker_agentp  s    c         C@  s0   t  |  j _ |  j j   |  j |  j j  d  S(   N(   Rl   R   R  R   RN   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_channel_close_does_nothing_if_already_closedt  s    c         C@  s3   d  |  j _ |  j j   |  j |  j j j  d  S(   N(   R5   R   R   R   RN   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt>   test_channel_close_does_not_call_close_channel_if_conn_is_Noney  s    (
   R2   R3   R#   R$   R  R  R  R  R	  R
  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR   Q  s   							t   TestChannelBasicQoSc           B@  s   e  Z d    Z RS(   c         C@  s-   |  j  j d  |  j |  j  j j d  d  S(   Ni   i   (   R   t	   basic_qosR)   R?   R@   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt)   test_channel_basic_qos_always_returns_one  s    (   R2   R3   R  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   t   TestChannelBasicGetc           B@  sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C@  s5   t  t |   j   t   |  j _ t   |  j _ d  S(   N(   R7   R  R#   R   R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s0   t    } |  j j |  |  j j j |  d  S(   N(   R   R   t	   basic_getR   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt,   test_channel_basic_get_calls__get_with_queue  s    	c         C@  sH   t    } |  j j |  |  j j j j } |  j j j |  j |  d  S(   N(   R   R   R  R   R   R   R   R   (   R   R   t   mock_raw_message(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt0   test_channel_basic_get_creates_Message_correctly  s
    	c         C@  sK   t    } |  j j |  |  j j j } |  j j j } | j d |  d  S(   NRX   (	   R   R   R  R   R   R   RH   RZ   R   (   R   R   t   mock_qpid_messageRZ   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt6   test_channel_basic_get_acknowledges_message_by_default  s
    	c         C@  sQ   t    } |  j j | d t |  j j j } |  j j j } | j	 d |  d  S(   Nt   no_ackRX   (
   R   R   R  R   R   R   R   RH   RZ   R   (   R   R   R  RZ   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt=   test_channel_basic_get_acknowledges_message_with_no_ack_False  s
    	c         C@  sQ   t    } |  j j | d t |  j j j } |  j j j } | j	 d |  d  S(   NR  RX   (
   R   R   R  Rl   R   R   R   RH   RZ   R   (   R   R   R  RZ   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt<   test_channel_basic_get_acknowledges_message_with_no_ack_True  s
    	c         C@  s>   t    } |  j j |  } |  j j j } |  j | |  d  S(   N(   R   R   R  R   R   R|   (   R   R   t   basic_get_resultt   expected_message(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt.   test_channel_basic_get_returns_correct_message  s    	c         C@  sZ   t    } t  d t  |  j _ |  j j |  } |  j |  j j j d  |  j |  d  S(   NR   i    (	   R   R   R   R   R  R)   R   t
   call_countR   (   R   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_basic_get_returns_None_when_channel__get_raises_Empty  s
    	(
   R2   R3   R#   R  R  R  R  R  R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   							t   TestChannelBasicCancelc           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s-   t  t |   j   i t   d 6|  j _ d  S(   Ni   (   R7   R  R#   R   R   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  j d  d  S(   Ni   (   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt<   test_channel_basic_cancel_no_error_if_consumer_tag_not_found  s    c         C@  s*   |  j  j d  |  j d |  j  j  d  S(   Ni   (   R   R   RW   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt'   test_channel_basic_cancel_pops_receiver  s    c         C@  s1   |  j  j d } |  j  j d  | j j   d  S(   Ni   (   R   R  R   R   R   (   R   t   mock_receiver(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt)   test_channel_basic_cancel_closes_receiver  s    c         C@  s<   t    |  j _ |  j j d  |  j j j j d d   d  S(   Ni   (   R   R   t   _tag_to_queueR   t   popR   R5   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt,   test_channel_basic_cancel_pops__tag_to_queue  s    c         C@  sN   t    |  j _ |  j j d  |  j j j j } |  j j j j | d   d  S(   Ni   (
   R   R   R"  R   R#  R   R   R   R   R5   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test_channel_basic_cancel_pops_connection__callbacks  s    (   R2   R3   R#   R  R  R!  R$  R%  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   					t   TestChannelInitc           B@  s   e  Z d    Z RS(   c         C@  s   |  j  |  j |  j j  |  j  |  j |  j j  |  j |  j j  |  j j j   |  j	 j
 } |  j  |  j j |  |  j |  j j i   |  j |  j j i   |  j  |  j j d   d  S(   N(   R|   R   R   R   R   RN   R  R   R   R   R   R  R/   R"  R  t   _qosR5   (   R   t   expected_broker_agent(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_channel___init__sets_variables_as_expected  s    (   R2   R3   R)  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR&    s   t   TestChannelBasicConsumec           B@  s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z e   e   d  Z	 d   Z
 d   Z d	   Z d
   Z d   Z RS(   c         C@  s#   t  t |   j   i  |  j _ d  S(   N(   R7   R*  R#   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  sX   t    } t    } |  j j | t    t    |  i | | 6} |  j | |  j j  d  S(   N(   R   R   t   basic_consumeR/   R"  (   R   t   mock_tagR   t   expected_dict(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt6   test_channel_basic_consume_adds_queue_to__tag_to_queue  s
    		c         C@  s_   t    } |  j j | t    t    t     |  j | |  j j  |  j |  j j | t  d  S(   N(   R   R   R+  R0   R   R   RD   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt>   test_channel_basic_consume_adds_entry_to_connection__callbacks   s    	"c         C@  sE   t    } |  j j | t    t    t     |  j j j j |  d  S(   N(   R   R   R+  R   RH   R   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_channel_basic_consume_creates_new_receiver  s    	"c         C@  sd   t    } |  j j t    t    t    |  |  j j j j } i | | 6} |  j | |  j j  d  S(   N(	   R   R   R+  R   RH   R   R   R/   R  (   R   R,  t   new_mock_receiverR-  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt-   test_channel_basic_consume_saves_new_receiver  s
    	"c         C@  si   t    } | |  j j _ |  j j t    t    t    t     |  j j j j } |  j	 | j
 | k  d  S(   N(   R   R   R?   R@   R+  R   RH   R   R   RI   t   capacity(   R   t   mock_prefetch_countt   new_receiver(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt8   test_channel_basic_consume_sets_capacity_on_new_receiver  s
    	%c         C@  sB   t    |  j _ t    } |  j j | | | t     |  j j | S(   N(   R   R   R   R+  R   R   (   R   R  t   original_cbR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   get_callback  s    	c         C@  sE   |  j    } t   } | |  | j } |  j j j |  j |  d  S(   N(   R8  R   R   R   R   R   (   R   t   callbackR  t   mock_content(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt=   test_channel_basic_consume_callback_creates_Message_correctly  s    	
	c         C@  s]   t    |  j _ |  j   } t    } | |  |  j j j j } |  j j j j | |  d  S(   N(	   R   R   R'  R8  R   R   t   delivery_tagRU   R   (   R   R9  R  t   mock_delivery_tag(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt7   test_channel_basic_consume_callback_adds_message_to_QoS(  s    	
c         C@  sW   t    |  j _ |  j   } t    } | |  |  j j j j } |  j j j |  d  S(   N(   R   R   t	   basic_ackR8  R   R   R<  R   (   R   R9  R  R=  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt5   test_channel_basic_consume_callback_gratuitously_acks2  s    	
c         C@  sN   t    |  j _ |  j d t  } t    } | |  |  j |  j j j  d  S(   NR  (   R   R   R?  R8  R   RN   R   (   R   R9  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt<   test_channel_basic_consume_callback_does_not_ack_when_needed:  s
    	
c         C@  s]   t    |  j _ t    } |  j d |  } t    } | |  |  j j j } | j |  d  S(   NR7  (   R   R   R?  R8  R   R   R   (   R   t   mock_original_callbackR9  R  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt7   test_channel_basic_consume_callback_calls_real_callbackA  s    		
(   R2   R3   R#   R.  R/  R0  R2  R6  R   R8  R;  R>  R@  RA  RC  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR*    s   									
		t   TestChannelQueueDeletec           B@  sY   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   c         C@  s   t  t |   j   t j |  j d  |  _ |  j j   |  _ t j |  j d  |  _	 |  j	 j   |  _
 t j |  j d  |  _ |  j j   |  _ t   |  _ d  S(   Nt
   _has_queuet   _sizet   _delete(   R7   RD  R#   R   R   R   t   patch__has_queueR   t   mock__has_queuet   patch__sizet
   mock__sizet   patch__deletet   mock__deleteR   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   O  s    c         C@  s>   |  j  j   |  j j   |  j j   t t |   j   d  S(   N(   RH  R    RJ  RL  R7   RD  R$   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$   Y  s    c         C@  s*   |  j  j |  j  |  j j |  j  d  S(   N(   R   t   queue_deleteR   RI  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_checks_if_queue_exists_  s    c         C@  s6   t  |  j _ |  j j |  j  |  j |  j j  d  S(   N(	   R   RI  R   R   RN  R   RN   RM  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt)   test_does_nothing_if_queue_does_not_existc  s    c         C@  sH   d |  j  _ |  j j |  j d t |  j j } |  j | j j	  d  S(   Ni   t   if_empty(
   RK  R   R   RN  R   Rl   R   RN   R   R   (   R   t   mock_broker(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt*   test_not_empty_and_if_empty_True_no_deleteh  s    c         C@  s6   |  j  j |  j  |  j j j } | j |  j  d  S(   N(   R   RN  R   R   R   R   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_calls_get_queuen  s    c         C@  s6   |  j  j |  j  |  j j j j } | j j   d  S(   N(   R   RN  R   R   R   R   t   getAttributesR   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_gets_queue_attributes  s    c         C@  sU   |  j  j j j } i d d 6| j _ |  j j |  j d t |  j |  j	 j
  d  S(   Ni   t   consumerCountt	   if_unused(   R   R   R   RU  R   RN  R   Rl   RN   RM  R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt)   test_queue_in_use_and_if_unused_no_deletex  s    c         C@  s*   |  j  j |  j  |  j j |  j  d  S(   N(   R   RN  R   RM  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_calls__delete_with_queue~  s    (   R2   R3   R#   R$   RO  RP  RS  RT  RV  RY  RZ  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRD  K  s   	
							t   TestChannelc           B@  s  e  Z e e d   d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   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 d   Z e e d  d    Z e e d  d    Z d   Z d   Z d   Z e d  e e d  e e d   e e d!  d"       Z e e d#  d$    Z  e e d#  d%    Z! e e d#  d&    Z" e e d#  d'    Z# d(   Z$ d)   Z% RS(*   s   .qpidtoollibsc         C@  s   t    |  _ t    |  _ t    |  _ t  d |  j  |  j _ t  d |  j  |  j _ t    |  _ t    |  _ t    |  _ | j	 |  _
 |  j |  j
 _ t |  j |  j  |  _ |  j |  j _ d  S(   NR   (   R   t   mock_connectionR   t   mock_qpid_sessionRH   R   t   mock_transportRR  t   mock_MessageR   t   mock_BrokerAgentR   R
   t
   my_channelR   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  t t j  d S(   s<   Verify that the class attribute QoS refers to the QoS objectN(   R|   R   R
   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_verify_QoS_class_attribute  s    c         C@  s   |  j  t t j  d S(   sM   Verify that the class attribute Message refers to the Message
        object.N(   R|   R   R
   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt#   test_verify_Message_class_attribute  s    c         C@  s   |  j  d t j  d S(   s>   Verify that the class attribute body_encoding is set to base64t   base64N(   R)   R
   t   body_encoding(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt"   test_body_encoding_class_attribute  s    c         C@  sA   |  j  t j t  |  j d t j  |  j  t j d t  d S(   sK   Verify that the codecs class attribute has a correct key and
        value.Rd  N(   RD   R
   t   codecsR   R0   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_codecs_class_attribute  s    c         C@  sp   d } t    } t    } i | d 6| _ | |  j j _ |  j j |  } |  j j j |  |  j | |  d S(   s\   Test getting the number of messages in a queue specified by
        name and returning them.i   R   N(	   R   R   RR  R   R   Ra  RF  R[   R)   (   R   t   message_countR   t   mock_queue_to_checkR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt	   test_size  s    		c         C@  sa   t    } t    |  j _ |  j j |  } |  j j j |  |  j j j |  |  j |  d S(   s?   Test deleting a queue calls purge and delQueue with queue name.N(   R   Ra  R   RG  R[   RR  t   delQueueR   (   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_delete  s    	c         C@  s;   t    } t |  j j _ |  j j |  } |  j |  d S(   s-   Test checking if a queue exists, and it does.N(   R   Rl   RR  R   R   Ra  RE  RI   (   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_has_queue_true  s    	c         C@  s;   t    } t |  j j _ |  j j |  } |  j |  d S(   s1   Test checking if a queue exists, and it does not.N(   R   R   RR  R   R   Ra  RE  RN   (   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_has_queue_false  s    	s    amqp.protocol.queue_declare_ok_tc         C@  sj  t    } t    } t    } t    } t    } t    } t    } t    }	 t | j _ t | j _ i | d 6| d 6| d 6| d 6| d 6}
 t    } t    } i |	 d 6| d 6} t    } | | _ t d  } | |  j j _	 | |  j j
 _ | | _ |  j j | d | d | d | d	 | d
 | d | } |  j j j | d |
 | j | |	 |  |  j | |  d S(   s>   Test declare_queue, where an exception is raised and silenced.t   passivet   durablet	   exclusives   auto-deletet	   argumentsR   RW  s   The foo object already exists.t   auto_deletet   nowaitt   optionsN(   R   R   t
   startswithR   t   endswithR   R8   RR  t   addQueueR   R   Ra  t   queue_declareR[   R|   (   R   t   mock_queue_declare_ok_tR   t   mock_passivet   mock_durablet   mock_exclusivet   mock_auto_deletet   mock_nowaitt   mock_argumentst   mock_msg_countRv  t   mock_consumer_countt   mock_return_valuet   values_dictt   mock_queue_datat   exception_to_raiseR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt(   test_queue_declare_with_exception_raised  sP    								
		
					c         C@  s   t    } t | j _ t | j _ i t d 6t d 6t d 6t d 6d d 6d d 6} t    } t    } i | d 6| d	 6} t    } | | _ d |  j j	 _ | |  j j
 _ |  j j |  | j j d
  |  j j	 j | d | d S(   s1   Test declare_queue sets ring_policy for celeryev.Rp  Rq  Rr  s   auto-deleteRs  t   rings   qpid.policy_typeR   RW  t   celeryevRv  N(   R   Rl   Rw  R   R   Rx  R5   R   RR  Ry  R   Ra  Rz  R[   (   R   R   t   expected_default_optionsR  R  R  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_queue_declare_set_ring_policy_for_celeryev  s.    	
		
		c         C@  s   t    } t | j _ t | j _ i t d 6t d 6t d 6t d 6d d 6d d 6} t    } t    } i | d 6| d	 6} t    } | | _ d |  j j	 _ | |  j j
 _ |  j j |  | j j d
  |  j j	 j | d | d S(   s/   Test declare_queue sets ring_policy for pidbox.Rp  Rq  Rr  s   auto-deleteRs  R  s   qpid.policy_typeR   RW  t   pidboxRv  N(   R   R   Rw  R   Rl   Rx  R5   R   RR  Ry  R   Ra  Rz  R[   (   R   R   R  R  R  R  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt-   test_queue_declare_set_ring_policy_for_pidbox"  s.    	
		
		c         C@  s   t    } t | j _ t | j _ i t d 6t d 6t d 6t d 6d d 6} t    } t    } i | d 6| d 6} t    } | | _ d |  j j	 _ | |  j j
 _ |  j j |  | j j d  | j j d	  |  j j	 j | d
 | d S(   s8   Test declare_queue does not set ring_policy as expected.Rp  Rq  Rr  s   auto-deleteRs  R   RW  R  R  Rv  N(   R   R   Rw  R   Rx  Rl   R5   R   RR  Ry  R   Ra  Rz  R[   (   R   R   R  R  R  R  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt2   test_queue_declare_ring_policy_not_set_as_expected?  s.    	
		
		c         C@  s   t    } t | j _ t | j _ i t d 6t d 6t d 6t d 6d	 d 6} t    } t    } i | d 6| d 6} t    } | | _ d	 |  j j	 _ | |  j j
 _ |  j j |  |  j j	 j | d | d	 S(
   s   Test declare_queue defaults.Rp  Rq  Rr  s   auto-deleteRs  R   RW  Rv  N(   R   R   Rw  R   Rx  Rl   R5   R   RR  Ry  R   Ra  Rz  R[   (   R   R   R  R  R  R  R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt    test_queue_declare_test_defaults\  s,    	
		
		c         C@  s   t  d  } t   } | |  j j _ |  j | j   |  j j |  Wd  QX|  j j j	 | d i t
 d 6t
 d 6d d 6t
 d 6d  d 6t d	 6d  S(
   Ns%   This exception should not be silencedRv  Rr  Rq  R  s   qpid.policy_typeRp  Rs  s   auto-delete(   R8   R   RR  Ry  R   R   t	   __class__Ra  Rz  R   R   R5   Rl   (   R   t   unique_exceptionR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt0   test_queue_declare_raises_exception_not_silencedx  s    	c         C@  s&   t  d  |  j j _ |  j j   d S(   s>   Create exchange where an exception is raised and then silenceds   The foo object already exists.N(   R8   RR  t   addExchangeR   Ra  t   exchange_declare(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt3   test_exchange_declare_raises_exception_and_silenced  s    c         C@  sE   t  d  } | |  j j _ |  j | j   |  j j   Wd QXd S(   s>   Create Exchange where an exception is raised and not silenced.s%   This exception should not be silencedN(   R8   RR  R  R   R   R  Ra  R  (   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt3   test_exchange_declare_raises_exception_not_silenced  s    c         C@  sj   t    } t    } t    } i | d 6} |  j j | | |  } |  j j j | | |  |  j |  d S(   s1   Create Exchange where an exception is NOT raised.Rq  N(   R   Ra  R  RR  R  R[   R   (   R   t   mock_exchanget	   mock_typeR}  Rv  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_exchange_declare  s    				c         C@  s?   t    } |  j j |  } |  j j j |  |  j |  d S(   s)   Test the deletion of an exchange by name.N(   R   Ra  t   exchange_deleteRR  t   delExchangeR[   R   (   R   R  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_exchange_delete  s    	c         C@  sN   t    } t    } t    } |  j j | | |  |  j j j | | |  d S(   s8   Test binding a queue to an exchange using a routing key.N(   R   Ra  t
   queue_bindRR  t   bindR[   (   R   R   R  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_queue_bind  s    				c         C@  sN   t    } t    } t    } |  j j | | |  |  j j j | | |  d S(   s<   Test unbinding a queue from an exchange using a routing key.N(   R   Ra  t   queue_unbindRR  t   unbindR[   (   R   R   R  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_queue_unbind  s    				c         C@  s`   t    } t    } t  d |  |  j _ |  j j |  } |  j j j |  |  j | |  d S(   s   Test purging a queue by name.R   N(   R   Ra  R   t   queue_purgeR[   R|   (   R   R   t   purge_resultR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_queue_purge  s    		s   .Channel.qosc         C@  s-   t    } |  j j |  | j j |  d S(   s2   Test that basic_ack calls the QoS object properly.N(   R   Ra  R?  RV   R[   (   R   t   mock_qosR=  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_basic_ack  s    	c         C@  s?   t    } t    } |  j j | |  | j j | d | d S(   s5   Test that basic_reject calls the QoS object properly.Rj   N(   R   Ra  t   basic_rejectRh   R[   (   R   R  R=  t   mock_requeue_value(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_basic_reject  s
    			c         C@  sB   d |  j _ |  j j } |  j | t  |  j | |  j j  d S(   s>   Test the qos property if the QoS object did not already exist.N(   R5   Ra  R'  R?   RD   R   R)   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_qos_manager_is_none  s    c         C@  s5   t    } | |  j _ |  j j } |  j | |  d S(   s7   Test the qos property if the QoS object already exists.N(   R   Ra  R'  R?   R|   (   R   t   mock_existing_qosR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_qos_manager_already_exists  s    	c         C@  s$  t    } t    } t    } t    } t    } t    } t    } t    } i | d 6| d 6}	 i | d 6| d 6}
 |  j j | d | d | d | d |	 d	 |
 } |  j | | d
  |  j | | d  |  j | | d  |  j |	 | d  |  j |
 | d	  |  j | | d	 d d  d S(   s7   Test that prepare_message() returns the correct result.t   header1t   header2t   properties1t   properties2t   priorityt   content_typet   content_encodingt   headerst
   propertiest   bodys   content-encodings   content-typet   delivery_infoN(   R   Ra  t   prepare_messageR|   R/   R1   (   R   t	   mock_bodyt   mock_priorityt   mock_content_encodingt   mock_content_typet   mock_header1t   mock_header2t   mock_properties1t   mock_properties2R  R  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_prepare_message  s2    								

		s   __builtin__.buffers   .Channel.body_encodings   .Channel.encode_bodys   .Channel._putc         C@  s&  t    } d } i | d 6i i  d 6d 6} | | f | _ t    } t    }	 t    }
 |
 | _ |  j j | | |	  | j | |  | j |  |  j | d |
  |  j | d d |  |  j | d d t j  |  j | d d d |  |  j | d d d |	  | j	 |	 | |  d	 S(
   s   Test basic_publish().s   this is my encoded bodyR  R  R  Re  R<  t   exchangeR   N(
   R   R   Ra  t   basic_publishR   R|   RD   t   uuidt   UUIDR[   (   R   t   mock_putt   mock_encode_bodyt   mock_body_encodingt   mock_buffert   mock_original_bodyt   mock_encoded_bodyR^   R  R   t   mock_encoded_buffered_body(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_basic_publish	  s6    		
					
s   .Channel.codecsc         C@  sk   t    } t    } t    } | | j _ | | j _ |  j j | d d } | d f } |  j | |  d S(   s:   Test if encode_body() works when encoding is set correctlyt   encodingRd  N(   R   R   R   t   encodeRa  t   encode_bodyR)   (   R   t   mock_codecsR  t   mock_encodert   mock_encoded_resultR   t   expected_result(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt"   test_encode_body_expected_encoding7  s    			c         C@  sA   t    } |  j j | d d } | d f } |  j | |  d S(   s?   Test if encode_body() works when encoding is not set correctly.R  N(   R   Ra  R  R5   R)   (   R   R  R  R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt&   test_encode_body_not_expected_encodingC  s    	c         C@  s_   t    } t    } t    } | | j _ | | j _ |  j j | d d } |  j | |  d S(   s;   Test if decode_body() works when encoding is set correctly.R  Rd  N(   R   R   R   t   decodeRa  t   decode_bodyR)   (   R   R  R  t   mock_decodert   mock_decoded_resultR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt"   test_decode_body_expected_encodingK  s    			c         C@  s5   t    } |  j j | d d } |  j | |  d S(   s?   Test if decode_body() works when encoding is not set correctly.R  N(   R   Ra  R  R5   R)   (   R   R  R  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt&   test_decode_body_not_expected_encodingV  s    	c         C@  sl   t    } t    } i  } t    } | | d <| | j _ | |  j j _ |  j j |  } |  j | |  d S(   s9   Test that typeof() finds an exchange that already exists.t   typeN(   R   RU  R   RR  t   getExchangeRa  t   typeofR|   (   R   R  t   mock_qpid_exchanget   mock_attributesR  R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_typeof_exchange_exists]  s    			
c         C@  sM   t    } t    } d |  j j _ |  j j | d | } |  j | |  d S(   s:   Test that typeof() finds an exchange that does not exists.t   defaultN(   R   R5   RR  R  R   Ra  R  R|   (   R   R  t   mock_defaultR   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt#   test_typeof_exchange_does_not_existi  s
    		(&   R2   R3   R   R%   R#   Rb  Rc  Rf  Rh  Rk  Rm  Rn  Ro  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  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR[    sJ   									2													
				"+	t   TestTransportInitc           B@  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C@  sP   t  j t d  |  _ |  j j   |  _ t  t d  |  _ |  j j   |  _ d  S(   Nt   verify_runtime_environments   .base.Transport.__init__(	   R   R   R   t   patch_aR   t   mock_verify_runtime_environmentR%   t   patch_bt   mock_base_Transport__init__(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   w  s    c         C@  s   |  j  j   |  j j   d  S(   N(   R  R    R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$   ~  s    c         C@  s   t  t    |  j j   d  S(   N(   R   R   R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt8   test_Transport___init___calls_verify_runtime_environment  s    c         C@  s'   t    } t |  |  j j |  d  S(   N(   R   R   R  R   (   R   Rs   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt3   test_transport___init___calls_parent_class___init__  s    	
c         C@  s#   t  t    } |  j | j  d  S(   N(   R   R   RN   t   use_async_interface(   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt6   test_transport___init___sets_use_async_interface_False  s    (   R2   R3   R#   R$   R  R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR  r  s
   				t   TestTransportDrainEventsc           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  sn   t  t    |  _ t   |  j _ t   |  _ t   |  _ t   |  _ t   |  _ i |  j |  j 6|  j _ d  S(   N(	   R   R   R   RH   R   R^   t	   mock_connt   mock_callbackR   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s5   t  j d  t   } |  j | _ |  j | j _ | S(   Ng333333?(   t   timet   sleepR   R   t   sourceR^   R   R   (   R   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   mock_next_receiver  s
    	c      
   C@  sb   t  t d d t F t   |  j j j _ |  j t j	   |  j j
 t    Wd  QXWd  QXd  S(   Ns
   .QpidEmptyR   (   R   R%   R6   R   RH   t   next_receiverR   R   t   socketR   t   drain_eventsR   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt3   test_socket_timeout_raised_when_all_receivers_empty  s    c         C@  sH   |  j  |  j j _ |  j t j   |  j j |  j d d Wd  QXd  S(   NR   i   (	   R  R   RH   R  R   R  R   R  R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt*   test_socket_timeout_raised_when_by_timeout  s    c         C@  sp   |  j  |  j j _ t   } y |  j j |  j d d Wn t j k
 rN n Xt   | } |  j	 | d  d  S(   NR   i   g      ?(
   R  R   RH   R  R   R  R  R  R   t   assertGreaterEqual(   R   t
   start_timet   elapsed_time_in_s(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt.   test_timeout_returns_no_earlier_then_asked_for  s    	c         C@  s]   |  j  |  j j _ y |  j j |  j d d Wn t j k
 rE n X|  j j	 |  j
  d  S(   NR   i   (   R  R   RH   R  R  R  R  R   R  R[   R^   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_callback_is_called  s    (   R2   R3   R#   R  R  R  R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   						
t   TestTransportCreateChannelc           B@  s#   e  Z d    Z d   Z d   Z RS(   c         C@  sX   t  t    |  _ t   |  _ t   |  _ |  j |  j j _ |  j j |  j  |  _ d  S(   N(	   R   R   R   R  t   mock_new_channelR
   R   t   create_channelt   returned_channel(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s
    c         C@  s6   |  j  |  j |  j  |  j j j |  j |  j  d  S(   N(   R|   R  R  R  R
   R[   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt(   test_new_channel_created_from_connection  s    c         C@  s#   |  j  j j } | j |  j  d  S(   N(   R  R   RU   R[   R  (   R   t   append_method(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_new_channel_added_to_connection_channel_list  s    (   R2   R3   R#   R  R	  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   		t    TestTransportEstablishConnectionc           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 d   Z d   Z d   Z RS(   c         C@  s   d t  f d     Y} |   |  _ d |  j _ t |  j _ i  |  j _ d  |  j _ d  |  j _ d  |  j _	 t
 |  j  |  _ t   |  _ |  j |  j _ d  S(   Nt
   MockClientc           B@  s   e  Z RS(    (   R2   R3   (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR    s   i   (   R   t   clientt   connect_timeoutR   t   sslt   transport_optionsR5   t   useridt   passwordt   login_methodR   R   R   R  R   (   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  sl   d |  j  _ d |  j  _ |  j j   |  j j d |  j  j d |  j  j d d d d d	 d
 d d d d  d  S(   Ns
   new-userids   new-passwordt   usernameR  R   t   PLAINR   R   R   i   R   i(  R   R   (   R  R  R  R   t   establish_connectionR  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt;   test_transport_establish_conn_new_option_overwrites_default  s    c         C@  s<   |  j  j   |  j j d d d d d d d d d	 d
  d  S(   NR   R   R   R   R   i   R   i(  R   R   (   R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt5   test_transport_establish_conn_empty_client_is_default  s    c         C@  sX   d } | |  j  j d <|  j j   |  j j d d d d d d d | d	 d
 d d  d  S(   Nt
   mynewparamt	   new_paramR   R   R   R   R   i   R   i(  R   R   (   R  R  R   R  R  R   (   R   t   new_param_value(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt9   test_transport_establish_conn_additional_transport_option  s    c         C@  sH   d |  j  _ |  j j   |  j j d d d d d d d d d	 d
  d  S(   NR   R   R   R   R   i   R   i(  R   R   (   R  t   hostnameR   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt>   test_transport_establish_conn_transform_localhost_to_127_0_0_1  s    c         C@  s&   d |  j  _ |  j t |  j j  d  S(   Nt   somepass(   R  R  R   R8   R   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt2   test_transport_password_no_userid_raises_exception  s    c         C@  s&   d |  j  _ |  j t |  j j  d  S(   Nt   someusername(   R  R  R   R8   R   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt2   test_transport_userid_no_password_raises_exception#  s    c         C@  sH   d |  j  _ |  j j   |  j j d d d d d d d d d	 d
  d  S(   Nt   EXTERNALR   R   R   R   i   R   i(  R   R   (   R  R  R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test_transport_overrides_sasl_mech_from_login_method'  s    c         C@  s`   d |  j  _ d |  j  _ |  j j   |  j j d |  j  j d d d d d d d	 d
 d d  d  S(   Ns
   new-useridR"  R  R   R   R   R   i   R   i(  R   R   (   R  R  R  R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_transport_overrides_sasl_mech_has_username2  s    c         C@  s`   d |  j  _ d |  j  _ |  j j   |  j j d d d d d d d d d	 d
 d d d d  d  S(   Nt   someuserR  R  R  R   R  R   R   R   i   R   i(  R   R   (   R  R  R  R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt*   test_transport_establish_conn_set_password?  s    c         C@  sH   t  |  j _ |  j j   |  j j d d d d d d d d d	 d
  d  S(   NR   R   R   R   R   i   R   i(  R   R   (   R   R  R  R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt7   test_transport_establish_conn_no_ssl_sets_transport_tcpM  s    c         C@  s   i d d 6d d 6d d 6t  j d 6|  j _  |  j j   |  j j d d d	 d d
 d d t d d d d d d d d d d  	d  S(   Nt
   my_keyfilet   keyfilet   my_certfilet   certfilet
   my_cacertst   ca_certst	   cert_reqst   ssl_certfilet   ssl_trustfileR   i   t   ssl_skip_hostname_checkR   R   R   R   t   ssl_keyfileR   i(  R   R  (   R  t   CERT_REQUIREDR  R   R  R  R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_transport_establish_conn_with_ssl_with_hostname_checkX  s    c         C@  s   i d d 6d d 6d d 6t  j d 6|  j _  |  j j   |  j j d d d	 d d
 d d t d d d d d d d d d d  	d  S(   NR(  R)  R*  R+  R,  R-  R.  R/  R0  R   i   R1  R   R   R   R   R2  R   i(  R   R  (   R  t   CERT_OPTIONALR  R   R  R  R   Rl   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_transport_establish_conn_with_ssl_skip_hostname_checkk  s    c         C@  s-   |  j  j   |  j |  j j j |  j  d  S(   N(   R   R  R|   R  R   R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt>   test_transport_establish_conn_sets_client_on_connection_object~  s    c         C@  sE   |  j  j   |  j j j } | j j j } |  j |  j  j |  d  S(   N(   R   R  R  R   R   RH   R|   (   R   t	   qpid_connt   new_mock_session(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_transport_establish_conn_creates_session_on_transport  s    c         C@  s)   |  j  j   } |  j | |  j j  d  S(   N(   R   R  R|   R  R   (   R   t   new_conn(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt;   test_transport_establish_conn_returns_new_connection_object  s    c         C@  sH   d |  j  _ |  j j   |  j j d d d d d d d d d	 d
  d  S(   Nt   some_other_hostnameR   R   R   R   i   R   i(  R   R   (   R  R  R   R  R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt:   test_transport_establish_conn_uses_hostname_if_not_default  s    c         C@  sQ   |  j  j   |  j j j } | j j j } | j } |  j  j } | j |  d  S(   N(	   R   R  R  R   R   RH   t#   set_message_received_notify_handlert   _qpid_message_ready_handlerR   (   R   t   qpid_conn_callR>   t   mock_set_callbackt   expected_msg_callback(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt.   test_transport_sets_qpid_message_ready_handler  s    	c         C@  sQ   |  j  j   |  j j j } | j j j } | j } |  j  j } | j |  d  S(   N(	   R   R  R  R   R   RH   t"   set_async_exception_notify_handlert$   _qpid_async_exception_notify_handlerR   (   R   RA  R>   RB  t   exc_callback(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt-   test_transport_sets_session_exception_handler  s    	c         C@  sK   |  j  j   |  j j j } | j } | j } |  j  j } | j |  d  S(   N(   R   R  R  R   R   RE  RF  R   (   R   RA  R8  RB  RG  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt0   test_transport_sets_connection_exception_handler  s    		(   R2   R3   R#   R  R  R  R  R  R!  R#  R$  R&  R'  R4  R6  R7  R:  R<  R>  RD  RH  RI  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR
    s(   			
																t   TestTransportClassAttributesc           B@  sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s   |  j  t t j  d  S(   N(   R|   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt    test_verify_Connection_attribute  s    c         C@  s   |  j  t j  d  S(   N(   R   R   t   polling_interval(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_verify_polling_disabled  s    c         C@  s   |  j  t j  d  S(   N(   RI   R   t   supports_ev(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt2   test_transport_verify_supports_asynchronous_events  s    c         C@  s*   |  j  d t j  |  j  d t j  d  S(   Nt   qpid(   R)   R   t   driver_typet   driver_name(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt    test_verify_driver_type_and_name  s    c         C@  s0   t  j } |  j t |  |  j t j |  d  S(   N(   R   t   recoverable_connection_errorsR0   R   t   selectR   (   R   t   connection_errors(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt3   test_transport_verify_recoverable_connection_errors  s    	c         C@  s   t  j } |  j t |  d  S(   N(   R   t   recoverable_channel_errorsR0   R   (   R   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt0   test_transport_verify_recoverable_channel_errors  s    	c         C@  s0   |  j  t j t j  |  j  t j t j  d  S(   N(   R)   R   RX  R   RT  RV  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test_transport_verify_pre_kombu_3_0_exception_labels  s    
(	   R2   R3   RK  RM  RO  RS  RW  RY  RZ  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRJ    s   						t"   TestTransportRegisterWithEventLoopc           B@  s   e  Z d    Z RS(   c         C@  sT   t  t    } t   } t   } | j | |  | j j | j | j | |  d  S(   N(   R   R   t   register_with_event_loopt
   add_readerR[   t   rt   on_readable(   R   R   R\  t	   mock_loop(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt8   test_transport_register_with_event_loop_calls_add_reader  s    			(   R2   R3   Ra  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR[    s   t&   TestTransportQpidCallbackHandlersAsyncc           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  sT   t  t d  |  _ |  j j   |  _ t t    |  _ |  j j t   t    d  S(   Ns	   .os.write(	   R   R%   R  R   t   mock_os_writeR   R   R   R\  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  j   d  S(   N(   R  R    (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$     s    c         C@  s0   |  j  j t    |  j j |  j  j d  d  S(   Nt   0(   R   R@  R   Rc  R   t   _w(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt4   test__qpid_message_ready_handler_writes_symbol_to_fd  s    c         C@  s6   |  j  j t   t    |  j j |  j  j d  d  S(   Nt   e(   R   RF  R   Rc  R   Re  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt=   test__qpid_async_exception_notify_handler_writes_symbol_to_fd  s    (   R2   R3   R#   R$   Rf  Rh  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRb    s   			t%   TestTransportQpidCallbackHandlersSyncc           B@  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C@  s;   t  t d  |  _ |  j j   |  _ t t    |  _ d  S(   Ns	   .os.write(   R   R%   R  R   Rc  R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  j   d  S(   N(   R  R    (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$     s    c         C@  s+   |  j  j t    |  j |  j j  d  S(   N(   R   R@  R   RI   Rc  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test__qpid_message_ready_handler_dows_not_write  s    c         C@  s1   |  j  j t   t    |  j |  j j  d  S(   N(   R   RF  R   RI   Rc  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt8   test__qpid_async_exception_notify_handler_does_not_write  s    (   R2   R3   R#   R$   Rj  Rk  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRi    s   			t   TestTransportOnReadablec           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s{   t  t d  |  _ |  j j   |  _ t  j t d  |  _ |  j j   |  _ t t	    |  _
 |  j
 j t	   t	    d  S(   Ns   .os.readR  (   R   R%   R  R   t   mock_os_readR   R   R  t   mock_drain_eventsR   R   R\  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#     s    c         C@  s   |  j  j   |  j j   d  S(   N(   R  R    R  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$     s    c         C@  s6   |  j  j t   t    |  j j |  j  j d  d  S(   Ni   (   R   R_  R   Rm  R   R^  (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt/   test_transport_on_readable_reads_symbol_from_fd  s    c         C@  s3   t    } |  j j | t     |  j j |  d  S(   N(   R   R   R_  Rn  R[   (   R   R\  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt-   test_transport_on_readable_calls_drain_events#  s    	c         C@  s/   t  j   |  j _ |  j j t   t    d  S(   N(   R  R   Rn  R   R   R_  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt1   test_transport_on_readable_catches_socket_timeout(  s    c         C@  sB   t    |  j _ |  j t    |  j j t   t    Wd  QXd  S(   N(   R   Rn  R   R   R   R_  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt?   test_transport_on_readable_ignores_non_socket_timeout_exception,  s    (   R2   R3   R#   R$   Ro  Rp  Rq  Rr  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRl    s   						t%   TestTransportVerifyRuntimeEnvironmentc           B@  s   e  Z d    Z d   Z e e d d e d    Z e d  d    Z e e d  d    Z	 e e d  d	    Z
 d
   Z RS(   c         C@  sD   t  j |  _ t j t  d  |  _ |  j j   t  t    |  _ d  S(   NR  (   R   R  R   R   R  R   R   R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   7  s    c         C@  s   |  j  j   d  S(   N(   R  R    (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR$   =  s    s   .PY3R   c         C@  s*   |  j  t   |  j |  j  Wd  QXd  S(   N(   R   t   RuntimeErrorR  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt!   test_raises_exception_for_Python3@  s    s   __builtin__.getattrc         C@  s3   t  | _ |  j t   |  j |  j  Wd  QXd  S(   N(   Rl   R   R   Rt  R  R   (   R   t   mock_getattr(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_raises_exc_for_PyPyE  s    	s   .dependency_is_nonec         C@  s3   t  | _ |  j t   |  j |  j  Wd  QXd  S(   N(   Rl   R   R   Rt  R  R   (   R   t   mock_dep_is_none(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_raises_exc_dep_missingK  s    	c         C@  s-   t  | _ |  j |  j  |  j | j  d  S(   N(   R   R   R  R   RI   R   (   R   Rx  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_calls_dependency_is_noneQ  s    	c         C@  s   |  j  |  j  d  S(   N(   R  R   (   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_raises_no_exceptionW  s    (   R2   R3   R#   R$   R   R%   Rl   Ru  Rw  Ry  Rz  R{  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyRs  2  s   		t   TestTransportc           B@  sn   e  Z d    Z d   Z d   Z e e d  d    Z e e d  d    Z e e d  d    Z	 RS(   c         C@  s   t    |  _ d S(   s,   Creates a mock_client to be used in testing.N(   R   t   mock_client(   R   (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR#   `  s    c         C@  s6   t  |  j  } t   } | j |  | j j   d S(   s9   Test that close_connection calls close on the connection.N(   R   R}  R   t   close_connectionR   R   (   R   t   my_transportR\  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_close_connectiond  s    	c         C@  s@   i d d 6d d 6} t  |  j  } | j } |  j | |  d S(   s3   Test that the default_connection_params are correctR   R  i(  R   N(   R   R}  t   default_connection_paramsR/   (   R   t   correct_paramsR  t   result_params(    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_default_connection_paramsk  s    
	s	   .os.closec         C@  s-   t  |  j  } | j   |  j | j  d  S(   N(   R   R}  t   __del__RN   R   (   R   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_del_syncu  s    
c         C@  sC   t  |  j  } | j t   t    | j   |  j | j  d  S(   N(   R   R}  R\  R   R  RI   R   (   R   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_del_async{  s    
c         C@  sO   t    | _ t |  j  } | j t   t    | j   |  j | j  d  S(   N(	   t   OSErrorR   R   R}  R\  R   R  RI   R   (   R   R   R  (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   test_del_async_failed  s
    
(
   R2   R3   R#   R  R  R   R%   R  R  R  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyR|  [  s   			
(R   t
   __future__R    RU  R  R  R   R  R  t   collectionsR   t	   itertoolsR   t	   functoolsR   t   mockR   t
   kombu.fiveR   R   R   R   t   kombu.transport.qpidR	   R
   R   R   R   R   R   R   t   kombu.transport.virtualR   t   kombu.tests.caseR   R   R   R   R   t   kombu.utils.compatR   R%   R'   R   R(   R8   R6   R<   R=   RG   RP   RT   R]   Ro   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R&  R*  RD  R[  R  R  R  R
  RJ  R[  Rb  Ri  Rl  Rs  R|  (    (    (    sA   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/transport/test_qpid.pyt   <module>   s  ":"	(;|&.,7X6 0"&