ó
úR‹_c           @` s÷   d  d l  m Z m Z m Z d  d l Z d  d l j Z d  d l m Z d  d l	 Z	 d  d l	 m
 Z
 d  d l m Z e j Z d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d e	 j f d „  ƒ  YZ e d k ró e j ƒ  n  d S(   i    (   t   print_functiont   divisiont   absolute_importN(   t   timing(   t   pool(   t   Timeoutt   SpecialErrorc           B` s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR      s   t   Undeadc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s   d |  _  d  S(   Ni    (   t
   shot_count(   t   self(    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   __init__   s    c         C` sL   xE t  rG y t j d ƒ Wq t k
 r. Pq |  j d 7_ q Xq Wd  S(   Ni   (   t   Truet   geventt   sleepR   R
   (   R   (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   __call__   s    	(   R   R   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR	      s   	t   Testc           B` sY   e  Z e j Z d  „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   c         C` sØ   t  j ƒ  } | j t j t j ƒ |  j t | ƒ d | ƒ | j t j t j d ƒ |  j t | ƒ d | ƒ t j ƒ  t j t j d t j	 ƒ |  j t | ƒ d | ƒ t j t j d t j	 ƒ |  j
 | ƒ d  S(   Ni   i   i   (   R   t   Groupt   spawnR   R   R   t
   LARGE_TICKt   assertEqualt   lent   LARGE_TICK_MIN_ADJt   assertFalse(   R   t   s(    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt
   test_basic$   s    
c         C` sÂ   t  j ƒ  } | j t j t ƒ | j t j t d ƒ t | ƒ d k sT t | ƒ ‚ t j ƒ  } | j	 d t
 ƒ t j ƒ  | } |  j | ƒ |  j t | ƒ d ƒ |  j | t d t d ƒ d  S(   Ni   t   raise_errori    gffffffþ?g      @(   R   R   R   R   R   t   DELAYR   t   AssertionErrort   timet   joinR   R   R   t   assertTimeWithinRange(   R   R   t   startt   delta(    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   test_waitall0   s    c         C` s½   t  j ƒ  } | j t j t ƒ | j t j t d ƒ t | ƒ d k sT t | ƒ ‚ t j ƒ  } | j	 ƒ  |  j
 | ƒ |  j t | ƒ d ƒ t j ƒ  | } | t d k  s¹ t | ƒ ‚ d  S(   Ni   i    gš™™™™™é?(   R   R   R   R   R   R   R   R   R   t   killR   R   (   R   R   R!   R"   (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   test_kill_block<   s    
c         C` s¶   t  j ƒ  } | j t j t ƒ | j t j t d ƒ t | ƒ d k sT t | ƒ ‚ | j d t	 ƒ t | ƒ d k s‚ t | ƒ ‚ t j d ƒ |  j
 | ƒ |  j t | ƒ d ƒ d  S(   Ni   t   blockg-Cëâ6?i    (   R   R   R   R   R   R   R   R   R$   t   FalseR   R   (   R   R   (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   test_kill_noblockH   s    c         ` sé  t  ƒ  ‰ t  ƒ  ‰ t j ˆ ƒ ‰  t j ˆ ƒ ‰ ‡  ‡ ‡ ‡ ‡ f d †  } t j d ƒ t j ˆ  ˆ g ƒ } ˆ j t | ƒ d | ƒ | d d ƒ | j ˆ  d t	 ƒ| d d ƒ t j d ƒ | d d ƒ | j ˆ  ƒ | d d ƒ | j ˆ  ƒ | d d ƒ | j
 d t	 ƒ | j
 d t	 ƒ | j
 d t	 ƒ | d d ƒ t j t ƒ | d d ƒ t ƒ  } t j t | j
 d t d | ƒ} | | k s t t | ƒ ƒ ‚ t | ƒ d k s¾t | ƒ ‚ | d d ƒ ˆ  j
 t ƒ ˆ j
 t ƒ d  S(   Nc         ` sj   ˆ j  ˆ  ƒ ˆ j  ˆ ƒ ˆ j ˆ  j ˆ  ƒ ˆ j ˆ j ˆ ƒ ˆ j ˆ j |  ƒ ˆ j ˆ j | ƒ d  S(   N(   t
   assertTrueR   t   deadR   R
   (   t   count1t   count2(   t   p1t   p2R   t   u1t   u2(    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   checkY   s    g{®Gáz„?i   i    R&   i   t   timeout_value(   R	   R   R   R   R   R   R   R   t   killoneR'   R$   R   t   objectt   with_timeoutR   R   t   reprR   (   R   R1   R   t   Xt   kill_result(    (   R-   R.   R   R/   R0   sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   test_kill_fires_onceS   s<    			!c         C` sG   t  j d „  ƒ } t  j d „  ƒ } t j | | g ƒ } | j ƒ  d  S(   Nc           S` s   d d S(   Ni   i    (    (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   <lambda>}   t    c           S` s   t  j d ƒ S(   Ni
   (   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR:   ~   R;   (   t   GreenletSubclassR   R   R   R$   (   R   R-   R.   R   (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   test_killall_subclass|   s    c         C` s‹   t  j d „  ƒ } t  j d „  ƒ } t ƒ  } | j | ƒ | j | ƒ t j | d t ƒt j d ƒ x | D] } | j sn t	 ‚ qn Wd  S(   Nc           S` s   t  j d ƒ S(   Ng      à?(   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR:   ƒ   R;   c           S` s   t  j d ƒ S(   Ng      à?(   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR:   „   R;   R&   g      à?(
   R<   R   t   sett   addR   t   killallR'   R   R*   R   (   R   R-   R.   R   t   g(    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt(   test_killall_iterable_argument_non_block‚   s    	c         C` s›   d „  } t  j | ƒ } t  j | ƒ } t ƒ  } | j | ƒ | j | ƒ |  j t ƒ  t j | d d ƒWd  QXx! | D] } |  j | j	 | ƒ qz Wd  S(   Nc           S` s,   y t  j d ƒ Wn t  j d ƒ n Xd  S(   Ng      ø?i   (   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   fŽ   s    t   timeoutg      à?(
   R<   R   R>   R?   t   assertRaisesR   R   R@   R   R*   (   R   RC   R-   R.   R   RA   (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt&   test_killall_iterable_argument_timeout   s    		(   R   R   t	   greentestt   LARGE_TIMEOUTt   __timeout__R   R#   R%   R(   R9   R=   RB   RF   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR       s   						)		R<   c           B` s   e  Z RS(    (   R   R   (    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyR<   Ÿ   s   t   __main__(   t
   __future__R    R   R   R   t   gevent.testingt   testingRG   R   R   R   t   gevent.timeoutR   R   R   t	   ExceptionR   R4   R	   t   TestCaseR   t   GreenletR<   R   t   main(    (    (    sW   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenletset.pyt   <module>   s   	