ó
ÐH/\c           @   sò  d  d l  m  Z  d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l j Z	 d  d l
 Z d  d l Z d  d l m Z d  d l Z d e j f d „  ƒ  YZ d „  Z d	 e f d
 „  ƒ  YZ d e	 j f d „  ƒ  YZ d e f d „  ƒ  YZ d d „ Z d „  Z d „  Z d „  Z d6 \ Z Z Z d Z d Z e	 j rFe	 j sXe	 j  sXe	 j! rad Z n e	 j" sse	 j# r|d Z n  d e	 j f d „  ƒ  YZ$ e	 j% d e$ f d „  ƒ  Yƒ Z& e	 j% d e$ f d  „  ƒ  Yƒ Z' e	 j% d! e$ f d" „  ƒ  Yƒ Z( d# e$ f d$ „  ƒ  YZ) d% e	 j f d& „  ƒ  YZ* d' e j j+ j, f d( „  ƒ  YZ- d) e j j+ j, f d* „  ƒ  YZ. d+ e	 j f d, „  ƒ  YZ/ d- e	 j f d. „  ƒ  YZ0 d/ „  Z1 d0 e	 j f d1 „  ƒ  YZ2 d2 „  Z3 d3 e	 j f d4 „  ƒ  YZ4 e5 d5 k rîe	 j6 ƒ  n  d S(7   iÿÿÿÿ(   t   timeN(   t   Event(   t   Queue(   t   ExpectedExceptiont   TestCoroutinePoolc           B   sk   e  Z e j j Z d  „  Z d „  Z d „  Z e	 e _
 d „  Z d „  Z d „  Z e j d ƒ d „  ƒ Z RS(   c            sE   t  ƒ  ‰  ‡  f d †  } |  j d ƒ } | j | d ƒ ˆ  j ƒ  d  S(   Nc            s   ˆ  j  ƒ  d  S(   N(   t   set(   t   _(   t   done(    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   some_work   s    i   t   x(   R	   (   R   t   klasst   apply_asynct   wait(   t   selfR   t   pool(    (   R   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_apply_async   s
    	c            sG   d ‰  ‡  f d †  } |  j  d ƒ } | j | ƒ } |  j ˆ  | ƒ d  S(   Ns   return valuec              s   ˆ  S(   N(    (    (   t   value(    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR      s    i   (   R
   t   applyt   assertEqual(   R   R   R   t   result(    (   R   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   test_apply   s
    c         C   sN   |  j  d ƒ } d „  } y | j | ƒ Wn t k
 r< n X|  j d ƒ d  S(   Ni   c           S   s   t  ƒ  ‚ d  S(   N(   R   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   raiser)   s    s$   Should have raised ExpectedException(   R
   R   R   t   fail(   R   R   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_apply_raises&   s    	c            s…   t  ƒ  ‰  g  ‰ ‡  ‡ f d †  } ‡  ‡ f d †  } |  j d ƒ } | j | ƒ } | j | ƒ | j ƒ  |  j d d d g ˆ ƒ d  S(   Nc              s(   t  j d ƒ ˆ j d ƒ ˆ  j ƒ  d  S(   Ngü©ñÒMbP?t   prod(   t   geventt   sleept   appendR   (    (   t   evtt   results(    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   producer:   s    c              s(   ˆ j  d ƒ ˆ  j ƒ  ˆ j  d ƒ d  S(   Nt   cons1t   cons2(   R   R   (    (   R   R   (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   consumer?   s    
i   R   R   R    (   R   R
   t   spawnR   t   getR   (   R   R   R!   R   R   (    (   R   R   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_multiple_coros6   s    	
c            sa   g  ‰ ‡ f d †  ‰  ‡  f d †  } |  j  d ƒ } | j | ƒ t j d ƒ |  j ˆ g  ƒ d  S(   Nc              s   ˆ  j  t ƒ d  S(   N(   R   t   True(    (   t   timer_fired(    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   fire_timerM   s    c              s   t  j d ˆ  ƒ d  S(   Ni    (   R   t   timer(    (   R'   (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   P   s    i   i    (   R
   R   R   R   R   (   R   R   R   (    (   R'   R&   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   dont_test_timer_cancelJ   s    c         C   sd   |  j  d ƒ } | j | j d „  d f ƒ } |  j | d ƒ t ƒ  } | j | j ƒ | j ƒ  d  S(   Ni   c         S   s   |  d S(   Ni   (    (   t   a(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   <lambda>Z   s    i   i   (   i   (   R
   R   R   R   R   R   R   (   R   R   R   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_reentrantX   s    	s   Does not work on PyPyc         C   sÙ   d d  l  } |  j d d ƒ } | j } z— t ƒ  | _ | j t ƒ } t j d ƒ  |  j t	 | j
 ƒ Wd  QXt j d ƒ |  j | j ƒ  d ƒ t j j d ƒ  | j t j d ƒ Wd  QXWd  | | _ | j ƒ  Xd  S(   Niÿÿÿÿt   sizei   i   i    gš™™™™™¹?(   i    (   t   sysR
   t   stderrt   FakeFileR"   t   crashR   t   Timeoutt   assertRaisest   RuntimeErrorR#   R   R   t
   free_countt	   start_newR   t   join(   R   R.   R   t
   normal_errt   waiter(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_stderr_raising`   s    		(   t   __name__t
   __module__R   R   t   PoolR
   R   R   R   t   Falset   error_fatalR$   R)   R,   t	   greentestt
   skipOnPyPyR:   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR      s   	
	
					c          O   s   t  d ƒ ‚ d  S(   Nt   Whoa(   R4   (   t   _argst   _kw(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR1   €   s    R0   c           B   s   e  Z d  „  Z RS(   c         G   s   t  d ƒ ‚ d  S(   Nt   Whaaa(   R4   (   R   RC   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   write†   s    (   R;   R<   RF   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR0   „   s   t   PoolBasicTestsc           B   sw   e  Z e j j Z d  „  Z d „  Z d „  Z e	 j
 d „  ƒ Z e	 j
 d „  ƒ Z e	 j
 d „  ƒ Z d „  Z d „  Z RS(   c         C   sj  |  j  d d ƒ } |  j | j ƒ  d ƒ g  } | j | j d ƒ } |  j | j ƒ  d ƒ | j ƒ  |  j | d g ƒ t j d ƒ |  j | j ƒ  d ƒ | j | j d ƒ |  j d | j ƒ  ƒ |  j | d g ƒ | j | j d	 ƒ |  j d | j ƒ  ƒ |  j | d g ƒ | j | j d
 ƒ |  j | d g ƒ t j d ƒ |  j t	 | ƒ d d d d g ƒ d  S(   NR-   i   i   i    i   i   g{®Gáz„?(   i   (   i   (   i   (
   R
   R   R5   R"   R   R#   R   R   R   t   sorted(   R   t   pt   rt   first(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_execute_async   s&    
c         C   s{   |  j  d d ƒ } | j t j d ƒ } | j | ƒ | j ƒ  |  j | ƒ |  j t | ƒ d ƒ |  j | j	 j
 d ƒ d  S(   NR-   i   iè  i    (   R
   R"   R   R   t   discardt   killt   assertFalseR   t   lent
   _semaphoret   counter(   R   RI   RK   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_discard¨   s    
c      
   C   s1  |  j  d d ƒ } t j t j d ƒ } zø t j t j d ƒ } zÑ |  j | j ƒ  d ƒ |  j t | ƒ d ƒ | j | ƒ |  j | j ƒ  d ƒ |  j t | ƒ d ƒ |  j t j	 ƒ ( t j	 d ƒ  | j | ƒ Wd  QXWd  QX|  j | j ƒ  d ƒ |  j t | ƒ d ƒ Wd  | j
 ƒ  XWd  | j
 ƒ  Xd  S(   NR-   i   iè  i    gš™™™™™¹?(   R
   R   R"   R   R   R5   RP   t   addR3   R2   RN   (   R   RI   RK   t   second(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method±   s"    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j | d t ƒWd  QXWd  | j	 ƒ  XWd  | j	 ƒ  Xd  S(   NR-   i   iè  t   blocking(
   R
   R   R"   R   RT   R3   R   t   PoolFullR>   RN   (   R   RI   RK   RU   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method_non_blockingÈ   s    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j | d d ƒWd  QXWd  | j ƒ  XWd  | j ƒ  Xd  S(   NR-   i   iè  t   timeoutgš™™™™™¹?(	   R
   R   R"   R   RT   R3   R   RX   RN   (   R   RI   RK   RU   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_add_method_timeout×   s    c         C   s    |  j  d d ƒ } t j t j d ƒ } zg t j t j d ƒ } z@ | j | ƒ |  j t j j ƒ  | j	 | d d ƒWd  QXWd  | j
 ƒ  XWd  | j
 ƒ  Xd  S(   NR-   i   iè  RZ   gš™™™™™¹?(   R
   R   R"   R   t   GreenletRT   R3   R   RX   t   startRN   (   R   RI   RK   RU   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_start_method_timeoutæ   s    c         C   s5   |  j  ƒ  } | j d „  d ƒ } |  j | d ƒ d  S(   Nc         S   s
   d |  f S(   Nt   foo(    (   R*   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   ÷   s    i   R_   (   i   (   R_   i   (   R
   R   R   (   R   RI   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   õ   s    c         C   s#   t  |  _ |  j t |  j d ƒ d  S(   Niÿÿÿÿ(   R>   t   switch_expectedR3   t
   ValueErrorR
   (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_init_errorú   s    	(   R;   R<   R   R   R=   R
   RL   RS   RV   R@   t   ignores_leakcheckRY   R[   R^   R   Rb   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRG   Š   s   					t   TimingWrapperc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  |  _ d  S(   N(   t   funct   Nonet   elapsed(   R   Re   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   __init__  s    	c         O   s5   t  ƒ  } z |  j | | Ž  SWd  t  ƒ  | |  _ Xd  S(   N(   R    Re   Rg   (   R   t   argst   kwdst   t(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   __call__  s    	(   R;   R<   Rh   Rl   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRd     s   	g        c         C   s   t  j | ƒ |  |  S(   N(   R   R   (   R	   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   sqr  s    c         C   s   |  |  S(   N(    (   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   squared  s    c         C   s   t  j t j ƒ  d ƒ |  |  S(   Ngš™™™™™¹?(   R   R   t   random(   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   sqr_random_sleep  s    c          c   s-   x t  d ƒ D] }  |  Vq Wt j d ƒ d  S(   Ni   gš™™™™™É?(   t   rangeR   R   (   t   i(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   final_sleep  s    	gË¡E¶óý´?gìQ¸…ë¡?gìQ¸…ëÁ?i
   iè  i   id   t   TestPoolc           B   sï   e  Z e j Z d  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i   c         C   s,   t  j j |  ƒ t j j |  j ƒ |  _ d  S(   N(   R@   t   TestCaset   setUpR   R   R=   R-   (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRv   4  s    c         C   s   |  j  j ƒ  d  S(   N(   R   R7   (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   cleanup8  s    c         C   sL   |  j  j } |  j | t d ƒ d ƒ |  j | t d i d d 6ƒ d ƒ d  S(   Ni   i   i   R	   i	   (   i   (    (   R   R   R   Rm   (   R   t   papply(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ;  s    c         C   sx   |  j  j } |  j | t t t ƒ ƒ t t t t t ƒ ƒ ƒ ƒ |  j | t t d ƒ ƒ t t t t d ƒ ƒ ƒ ƒ d  S(   Nid   (   R   t   mapR   Rm   Rq   t   SMALL_RANGEt   listRn   (   R   t   pmap(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_map@  s    4c         C   sW   |  j  j t d t f ƒ } t | j ƒ } |  j | ƒ  d ƒ |  j | j t d ƒ d  S(   Ni   i1   i   (	   R   R   Rm   t   TIMEOUT1Rd   R#   R   t   assertTimeoutAlmostEqualRg   (   R   t   resR#   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   test_asyncE  s    c         C   s†   g  } |  j  j t d t f d | j ƒ} t | j ƒ } |  j | ƒ  d ƒ |  j | j	 t d ƒ t
 j d ƒ |  j | d g ƒ d  S(   Ni   t   callbacki1   i   i    (   R   R   Rm   R~   R   Rd   R#   R   R   Rg   R   R   (   R   R   R€   R#   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_async_callbackK  s    $c         C   sn   |  j  j t d t d f ƒ } t | j ƒ } |  j t j | d t ƒ|  j	 | j
 t d ƒ |  j  j ƒ  d  S(   Ni   gš™™™™™É?RZ   i   (   R   R   Rm   t   TIMEOUT2Rd   R#   R3   R   R2   R   Rg   R7   (   R   R€   R#   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_async_timeoutT  s
    c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t t t ƒ ƒ ƒ ƒ d  S(   N(   R   t   imapRm   Rq   Rz   R   R{   Ry   (   R   t   it(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_list_small[  s    c         C   sc   |  j  j t t t ƒ ƒ } x. t t ƒ D]  } |  j t | ƒ | | ƒ q( W|  j t t | ƒ d  S(   N(	   R   R†   Rm   Rq   Rz   R   t   nextR3   t   StopIteration(   R   R‡   Rr   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_it_small_  s    c         C   sc   |  j  j t t t ƒ ƒ } x. t t ƒ D]  } |  j t | ƒ | | ƒ q( W|  j t t | ƒ d  S(   N(	   R   R†   Rm   Rq   t   LARGE_RANGER   R‰   R3   RŠ   (   R   R‡   Rr   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_it_largee  s    c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t t t ƒ ƒ ƒ ƒ d  S(   N(	   R   R†   Rp   Rq   Rz   R   R{   Ry   Rn   (   R   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_randomk  s    c         C   s   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ d  S(   N(
   R   t   imap_unorderedRm   Rq   RŒ   R   RH   R{   Ry   Rn   (   R   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unorderedo  s    +c         C   sJ   |  j  j t t t ƒ ƒ } |  j t | ƒ t t t	 t t ƒ ƒ ƒ ƒ d  S(   N(
   R   R   Rp   Rq   Rz   R   RH   R{   Ry   Rn   (   R   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_randomv  s    c         C   s/   |  j  j t g  ƒ } |  j t | ƒ g  ƒ d  S(   N(   R   R   Rm   R   R{   (   R   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_imap_unorderedz  s    c         C   s/   |  j  j t g  ƒ } |  j t | ƒ g  ƒ d  S(   N(   R   R†   Rm   R   R{   (   R   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_imap~  s    c         C   s#   |  j  |  j j t g  ƒ g  ƒ d  S(   N(   R   R   Ry   Rm   (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_empty_map‚  s    c         C   sv   |  j  j t j d g |  j p! d d ƒ } t j d ƒ t |  j  j ƒ } | ƒ  |  j | j d d ƒ | j	 ƒ  d  S(   Ngš™™™™™¹?i
   i   g        g      à?(
   R   t	   map_asyncR   R   R-   Rd   RN   t   assertTimeWithinRangeRg   R7   (   R   R   RN   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_terminate…  s    ,c         C   s!   t  j t | ƒ d ƒ t | ƒ S(   Ng      $@(   R   R   t   floatt   str(   R   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR     s    c         C   sn   t  |  j j |  j d d d g ƒ ƒ } |  j j d k rK d d d g } n d d d g } |  j | | ƒ d  S(   Ni
   i   i   t   10t   1t   2(   R{   R   R   R   R-   R   (   R   R   t   expected(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_sleep‘  s
    'c         C   sa   t  ƒ  } | j d ƒ t j d | j t ƒ t |  j j d „  | ƒ ƒ } |  j | d g ƒ d  S(   Ni{   gš™™™™™¹?c         S   s   |  S(   N(    (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   Ÿ  s    (	   R   t   putR   t   spawn_laterRŠ   R{   R   R†   R   (   R   t   qR   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_no_stop›  s
    	c         C   sa   t  ƒ  } | j d ƒ t j d | j t ƒ t |  j j d „  | ƒ ƒ } |  j | d g ƒ d  S(   NiÒ  gš™™™™™¹?c         S   s   |  S(   N(    (   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   ¦  s    (	   R   RŸ   R   R    RŠ   R{   R   R   R   (   R   R¡   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_no_stop¢  s
    	c         C   s;   t  |  j j t t ƒ  ƒ ƒ } |  j | d d d g ƒ d  S(   Ni    i   i   (   R{   R   R†   Rm   Rs   R   (   R   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_final_sleepª  s    c         C   s;   t  |  j j t t ƒ  ƒ ƒ } |  j | d d d g ƒ d  S(   Ni    i   i   (   R{   R   R   Rm   Rs   R   (   R   R   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_imap_unordered_final_sleep®  s    c            s°   t  t d ƒ ƒ } d g ‰  ‡  f d †  } ‡  ‡ f d †  } xm ˆ j j ˆ j j f D]S } d ˆ  d <| | | | d d ƒ} | | ƒ } | ƒ  } ˆ j t | ƒ | ƒ qU Wd  S(   Nid   i    c            s   ˆ  d c d 7<|  S(   Ni    i   (    (   Rr   t   _j(   t   running(    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   short_running_func¸  s    c            s   ‡  ‡ ‡ f d †  } | S(   Nc             s‹   g  }  x~ t  ˆ  ƒ D]p \ } } ˆ j ˆ d | d k ˆ d ƒ |  j | ƒ t j d ƒ ˆ j t ˆ  j ƒ d k t ˆ  j ƒ ƒ q W|  S(   Ni    i   g{®Gáz„?(   t	   enumeratet
   assertTrueR   R   R   RP   t   queue(   R   Rr   R	   (   t   mappingR§   R   (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   reader¿  s    ",(    (   R¬   R­   (   R§   R   (   R¬   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   make_reader¼  s    t   maxsizei   (   R{   Rq   R   R   R†   R   RH   (   R   t   iterableR¨   R®   t   methR¬   R­   t   l(    (   R§   R   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt!   test_imap_unordered_bounded_queue³  s    	
		(   R;   R<   R@   t   LARGE_TIMEOUTt   __timeout__R-   Rv   Rw   R   R}   R   Rƒ   R…   Rˆ   R‹   R   RŽ   R   R‘   R’   R“   R”   R—   R   Rž   R¢   R£   R¤   R¥   R³   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRt   0  s4   																					
				t	   TestPool2c           B   s   e  Z d  Z RS(   i   (   R;   R<   R-   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR¶   Ô  s   t	   TestPool3c           B   s   e  Z d  Z RS(   i   (   R;   R<   R-   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR·   Ø  s   t
   TestPool10c           B   s   e  Z d  Z RS(   i
   (   R;   R<   R-   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR¸   Ü  s   t   TestPoolUnlimitc           B   s   e  Z d  Z RS(   N(   R;   R<   Rf   R-   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR¹   á  s   t	   TestPool0c           B   s   e  Z d  Z d „  Z RS(   i    c         C   s^   t  j j d d ƒ } |  j d | j ƒ  ƒ |  j | j ƒ  ƒ |  j d | j d d ƒ ƒ d  S(   NR-   i    RZ   g{®Gáz„?(   R   R   R=   R   R5   Rª   t   fullt   wait_available(   R   RI   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_wait_fullè  s    (   R;   R<   R-   R½   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRº   å  s   t   TestJoinSleepc           B   s   e  Z d  „  Z RS(   c         C   sJ   t  j j ƒ  } | j t  j d ƒ } z | j d | ƒ Wd  | j ƒ  Xd  S(   Ni
   RZ   (   R   R   R=   R"   R   R7   RN   (   R   RZ   RI   t   g(    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ñ  s
    (   R;   R<   R   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR¾   ï  s   t   TestJoinSleep_raise_errorc           B   s   e  Z d  „  Z RS(   c         C   sP   t  j j ƒ  } | j t  j d ƒ } z | j d | d t ƒ Wd  | j ƒ  Xd  S(   Ni
   RZ   t   raise_error(   R   R   R=   R"   R   R7   R%   RN   (   R   RZ   RI   R¿   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   ü  s
    (   R;   R<   R   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÀ   ú  s   t   TestJoinEmptyc           B   s   e  Z e Z d  „  Z RS(   c         C   s/   t  j j ƒ  } | j ƒ  } |  j | d ƒ d  S(   Ns   empty should return true(   R   R   R=   R7   Rª   (   R   RI   R€   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test  s    (   R;   R<   R>   R`   RÃ   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÂ     s   t	   TestSpawnc           B   s    e  Z e Z d  „  Z d „  Z RS(   c         C   s°   t  j j d ƒ } |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ t  j t j s d n d ƒ |  j t | ƒ d ƒ d  S(   Ni   i    gš™™™™™¹?gR¸…ëQÈ?g      à?(	   R   R   R=   R   RP   R"   R   R@   t   RUNNING_ON_APPVEYOR(   R   RI   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÃ     s    c         C   s¦   t  j j d ƒ } |  j t | ƒ d ƒ | j t  j d ƒ |  j t | ƒ d ƒ | j d ƒ } |  j | d ƒ | j ƒ  } |  j	 | d ƒ |  j t | ƒ d ƒ d  S(   Ni   i    gš™™™™™¹?g{®Gáz„?s*   waiting on a full pool should return falses    waiting to finish should be true(
   R   R   R=   R   RP   R"   R   R7   RO   Rª   (   R   RI   R€   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   testSpawnAndWait  s    (   R;   R<   R%   R`   RÃ   RÆ   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÄ     s   	
c           c   s   d Vd Vt  ‚ d  S(   Ni   i   (   R   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt
   error_iter&  s    t   TestErrorInIteratorc           B   s    e  Z e Z d  „  Z d „  Z RS(   c         C   sB   t  j j d ƒ } |  j t | j d „  t ƒ  ƒ t  j d ƒ d  S(   Ni   c         S   s   d  S(   N(   Rf   (   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   1  s    gü©ñÒMbP?(   R   R   R=   R3   R   Ry   RÇ   R   (   R   RI   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÃ   /  s    c            sB   t  j j d ƒ ‰  ‡  f d †  } |  j t | ƒ t  j d ƒ d  S(   Ni   c              s   t  ˆ  j d „  t ƒ  ƒ ƒ S(   Nc         S   s   d  S(   N(   Rf   (   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR+   8  s    (   R{   R   RÇ   (    (   RI   (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   unordered7  s    gü©ñÒMbP?(   R   R   R=   R3   R   R   (   R   RÉ   (    (   RI   s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   test_unordered4  s    (   R;   R<   R>   R?   RÃ   RÊ   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÈ   ,  s   	c         C   s   d |  S(   Ng      ð?(    (   R	   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   divide_by>  s    t   TestErrorInHandlerc           B   s)   e  Z e Z d  „  Z d „  Z d „  Z RS(   c         C   s8   t  j j d ƒ } |  j t | j t d d d g ƒ d  S(   Ni   i   i    i   (   R   R   R=   R3   t   ZeroDivisionErrorRy   RË   (   R   RI   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR}   E  s    c         C   sƒ   t  j j d ƒ } | j t d d d g ƒ } |  j t | ƒ d ƒ |  j t t | ƒ |  j t | ƒ d ƒ |  j t	 t | ƒ d  S(   Ni   i    i   g      ð?g      à?(
   R   R   R=   R†   RË   R   R‰   R3   RÍ   RŠ   (   R   RI   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt	   test_imapI  s    c         C   sƒ   t  j j d ƒ } | j t d d d g ƒ } |  j t | ƒ d ƒ |  j t t | ƒ |  j t | ƒ d ƒ |  j t	 t | ƒ d  S(   Ni   i    i   g      ð?g      à?(
   R   R   R=   R   RË   R   R‰   R3   RÍ   RŠ   (   R   RI   R‡   (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyR   Q  s    (   R;   R<   R>   R?   R}   RÎ   R   (    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyRÌ   B  s   		t   __main__(   gË¡E¶óý´?gìQ¸…ë¡?gìQ¸…ëÁ?(7   R    R   t   gevent.poolt   gevent.eventR   t   gevent.queueR   t   gevent.testingt   testingR@   t   gevent.testing.timingRo   R   t   unittestRu   R   R1   t   objectR0   RG   Rd   Rm   Rn   Rp   Rs   R~   R„   t   TIMEOUT3Rz   RŒ   t   PYPYt   WINt   RUN_LEAKCHECKSt   RUN_COVERAGEt   RUNNING_ON_CIt   EXPECT_POOR_TIMER_RESOLUTIONRt   Rc   R¶   R·   R¸   R¹   Rº   t   timingt   AbstractGenericWaitTestCaseR¾   RÀ   RÂ   RÄ   RÇ   RÈ   RË   RÌ   R;   t   main(    (    (    s6   lib/python2.7/site-packages/gevent/tests/test__pool.pyt   <module>   sX   q	x			$		¤			
			