σ
O'^c           @@  s²   d  d l  m Z d  d l m Z m Z d  d l m Z d  d l m Z d  d l m	 Z	 d d l
 m Z m Z d e f d	     YZ d
 e f d     YZ d e f d     YZ d S(   i    (   t   absolute_import(   t
   Connectiont   Producer(   t   pools(   t   ConnectionPool(   t   eqhashi   (   t   Caset   Mockt   test_ProducerPoolc           B@  s±   e  Z e j Z d  e j f d     YZ 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(   t   MyPoolc           B@  s   e  Z d    Z d   Z RS(   c         O@  s&   t    |  _ t j j |  | |  d  S(   N(   R   t   instanceR   t   ProducerPoolt   __init__(   t   selft   argst   kwargs(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyR      s    c         C@  s   |  j  S(   N(   R
   (   R   t
   connection(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyR      s    (   t   __name__t
   __module__R   R   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyR	      s   	c         C@  s+   t    |  _ |  j |  j d d |  _ d  S(   Nt   limiti
   (   R   t   connectionst   Poolt   pool(   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   setUp   s    c         C@  s   |  j  j t d d   d  S(   Nt   namet   resource(   R   t   close_resourceR   (   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_close_resource   s    c         C@  sx   t    |  j _ t   |  j j _ t    } |  j _ t    } | _ |  j t   |  j j   Wd  QX| j	 j
   d  S(   N(   R   R   R   t   IOErrort   side_effectt   _acquire_connectiont   return_valuet   assertRaisest   create_producert   releaset   assert_called_with(   R   t   acqt   conn(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt-   test_releases_connection_when_Producer_raises   s    c         C@  s   t    } t    } | _ t   | j _ t    } |  j _ t    } | _ d  | _ |  j	 t   |  j j
 |  Wd  QX| j j   d  S(   N(   R   R   R   t   reviveR   R   R   t   Nonet   _channelR    t   prepareR"   R#   (   R   t   ppt   pR$   R%   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt(   test_prepare_release_connection_on_error'   s    		c         C@  sR   t    } t    | _ |  j j |  | j j j   d  | _ |  j j |  d  S(   N(   R   t   __connection__R   R"   R#   R(   (   R   R,   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt    test_release_releases_connection2   s    		c         C@  s   |  j  |  j j |  j  d  S(   N(   t   assertIsR   R   (   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt	   test_init:   s    c         C@  s#   |  j  |  j j t    t  d  S(   N(   t   assertIsInstanceR   R   R   (   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_Producer=   s    c         C@  s'   |  j  j   |  j j j d t  d  S(   Nt   block(   R   R   R   t   acquireR#   t   True(   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_acquire_connection@   s    c         C@  sB   |  j  j   } |   } |  j | t  |  j j j d t  d  S(   NR4   (   R   t   newR2   R   R   R5   R#   R6   (   R   t   promiset   producer(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_newD   s    	c         C@  s9   |  j  |  j d d  } | j   |  j | j j  d  S(   NR   (   R   R   R(   t   setupt   assertFalset	   _resourcet   queue(   R   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_setup_unlimitedJ   s    
c         C@  sT   |  j  t |  j j j  |  j j  |  j j j   } |   } |  j | t  d  S(   N(	   t   assertEqualt   lenR   R>   R?   R   t
   get_nowaitR2   R   (   R   t   firstR:   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt
   test_setupO   s    %	c         C@  s   t    } |  j j _ |  j |  j d d } d  | j _ | j j	   } | j
 |  } |  j |  j j j  | j j |  d  S(   NR   i
   (   R   R   R5   R   R	   R(   R
   R)   R>   RC   R*   t
   assertTruet   calledR'   R#   (   R   R   R   RD   R:   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_prepareV   s    c         C@  s~   t    |  j j _ |  j |  j d d } t    | j _ | j j   } |  j j j	   | j
 |  } |  j | j j  d  S(   NR   i
   (   R   R   R5   R   R	   R
   R)   R>   RC   t   resetR*   R=   R'   RG   (   R   R   RD   R:   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt$   test_prepare_channel_already_created_   s    c         C@  s    t  t  } |  j j |  d  S(   N(   R   R   R   R*   (   R   t   x(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_prepare_not_callableh   s    c         C@  sU   t    } t    | _ t    | _ |  j j |  | j j j   |  j | j  d  S(   N(   R   t   channelR.   R   R"   R#   t   assertIsNone(   R   R,   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_releasel   s    	(   R   R   R   R   R   R	   R   R   R&   R-   R/   R1   R3   R7   R;   R@   RE   RH   RJ   RL   RO   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyR      s"   																			t   test_PoolGroupc           B@  s{   e  Z e j Z d  e j f d     YZ d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z RS(   t   MyGroupc           B@  s   e  Z d    Z RS(   c         C@  s
   | | f S(   N(    (   R   R   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   createz   s    (   R   R   RR   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyRQ   x   s   c         C@  s9   |  j    } |  j t   | j t   d  Wd  QXd  S(   Ni
   (   t   GroupR    t   NotImplementedErrorRR   R   (   R   t   g(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_interface_create}   s    c         C@  s`   t  t j d <|  j d t j  } | d } |  j | d t j   f  |  j t j d  d  S(   Ni    R   t   foo(   t   FalseR   t   _usedRQ   t   use_global_limitt   assertTupleEqualt	   get_limitRF   (   R   RU   t   res(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_getitem_using_global_limit   s
    
c         C@  s=   t  t j d <|  j d d  } | d } |  j | d  d  S(   Ni    R   i8 RW   (   RW   i8 (   R6   R   RY   RQ   R[   (   R   RU   R]   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_getitem_using_custom_limit   s    
c         C@  s/   |  j    } | d | d =|  j d |  d  S(   NRW   (   RQ   t   assertNotIn(   R   RU   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_delitem   s    c         C@  sf   t  d  } t j | } |  j |  |  j | t  |  j | j |  |  j | j	 t j
    d  S(   Ns	   memory://(   R   R   R   RF   R2   R   R0   R   RA   R   R\   (   R   R%   R,   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_Connections   s    c         C@  s   t  d  } t j | } |  j |  |  j | t j  |  j | j t j |  |  j | j	 | j j	  |  j | j	 t j
    d  S(   Ns	   memory://(   R   R   t	   producersRF   R2   R   R0   R   RA   R   R\   (   R   R%   R,   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_Producers   s    c         C@  s4   t  d  } t j | |  j t t j     d  S(   Ns	   memory://(   R   R   R   RF   t   listt
   _all_pools(   R   R%   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_all_groups¦   s    c         C@  s₯   t  j   d t f d     Y} t   } t  j d <|   } t  j j |  t  j   | j j   |  j	 | j
  t   } t  j d <t   | j _ t  j   d  S(   NRQ   c           B@  s   e  Z e Z d    Z RS(   c         S@  s   t  |  _ d  S(   N(   R6   t   clear_called(   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   clear²   s    (   R   R   RX   Rh   Ri   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyRQ   ―   s   RW   (   R   RI   t   dictR   R   t   _groupst   appendt   force_close_allR#   RF   Rh   t   KeyErrorR   (   R   RQ   t   p1t   g1(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt
   test_reset¬   s    
	
c         C@  sκ   t  j   t  j d  t  j   } |  j | d  t  j t d  t  j | d  |  j t  j   | d  t  j   } |  j t   t  j | d  Wd  QXt  j | d d t	 |  j t  j   | d  t  j t  j    d  S(   Ni  s	   memory://i   t   force(
   R   RI   t	   set_limitR\   RA   R   R   R    t   RuntimeErrorR6   (   R   R   (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_set_limitΑ   s    
(   R   R   R   t	   PoolGroupRS   RQ   RV   R^   R_   Ra   Rb   Rd   Rg   Rq   Ru   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyRP   u   s   										t   test_fun_PoolGroupc           B@  s   e  Z d    Z RS(   c         C@  sR  d } d } t  |  } t  |  } t  |  } t |  t |  k sN t  t |  t |  k sl t  t  | d i t d 6} |  j t |  t |   t j | } t j | } t j | }	 |  j | |  |  j | |	  | j	   }
 |  j
 | j  |  j
 |	 j  |  j | j  |
 j   |  j | j  |  j |	 j  d  S(   Ns   memory://localhost:123s   memory://localhost:124t   transport_optionst   confirm_publish(   R   R   t   AssertionErrorR6   t   assertNotEqualR   R   t   assertIsNotR0   R5   RF   t   _dirtyR=   R"   (   R   t   c1ut   c2ut   c1t   c2t   c3t   c4Ro   t   p2t   p3t   r1(    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   test_connections_behaviorΥ   s*    
(   R   R   R   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyRw   Σ   s   N(   t
   __future__R    t   kombuR   R   R   t   kombu.connectionR   t   kombu.utilsR   t   caseR   R   R   RP   Rw   (    (    (    s8   /tmp/pip-unpacked-wheel-UAnTfW/kombu/tests/test_pools.pyt   <module>   s   j^