ó
úR‹_c           @   s?  d  d l  Z  d  d l Z d  d l j Z d  d l Z d  d l m Z m Z m Z d  d l m	 Z	 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 e j Z e e j _ d	 e j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e  f d „  ƒ  YZ! d e j f d „  ƒ  YZ" d „  Z# d e$ f d „  ƒ  YZ% e  j& d e  j' ƒ Z( d  e j) f d! „  ƒ  YZ* d" e j f d# „  ƒ  YZ+ d$ e f d% „  ƒ  YZ, d& e f d' „  ƒ  YZ- d( e f d) „  ƒ  YZ. d* e f d+ „  ƒ  YZ/ d, e j f d- „  ƒ  YZ0 d. e j f d/ „  ƒ  YZ1 d0 „  Z2 d1 „  Z3 d2 e j f d3 „  ƒ  YZ4 e j5 d4 ƒ d5 e j f d6 „  ƒ  Yƒ Z6 e j7 d7 ƒ d8 e j f d9 „  ƒ  Yƒ Z8 e$ ƒ  Z9 [ [ e: d: k r;e j; ƒ  n  d S(;   iÿÿÿÿN(   t   sleept   with_timeoutt
   getcurrent(   t   greenlet(   t   AsyncResult(   t   Queuet   Channel(   t   AbstractGenericWaitTestCase(   t   AbstractGenericGetTestCase(   t   timingt   ExpectedErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR
   (   s   t   TestLinkc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s…   t  j d „  ƒ } t ƒ  } | j | ƒ |  j | j ƒ  d ƒ x@ t d ƒ D]2 } t ƒ  } | j | ƒ |  j | j ƒ  d ƒ qK Wd  S(   Nc           S   s   d S(   Nid   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   <lambda>/   t    id   i   (   t   geventt   spawnR   t   linkt   assertEqualt   gett   range(   t   selft   pt   eventt   _t   event2(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_link_to_asyncresult.   s    		c            sÕ   t  d ƒ ‰  t j ‡  f d †  ƒ } t ƒ  } | j | ƒ |  j t  ƒ  } | j ƒ  Wd  QX|  j | j ˆ  ƒ x_ t	 d ƒ D]Q } t ƒ  } | j | ƒ |  j t  ƒ  } | j ƒ  Wd  QX|  j | j ˆ  ƒ q| Wd  S(   Nt"   test_link_to_asyncresult_exceptionc              s   t  ƒ  j ˆ  ƒ S(   N(   R   t   throw(    (   t   err(    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ;   R   i   (
   R
   R   R   R   R   t   assertRaisesR   t   assertIst	   exceptionR   (   R   R   R   t   excR   R   (    (   R   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   9   s    		c         C   sŽ   t  j d „  ƒ } t ƒ  } | j | j ƒ |  j | j ƒ  j ƒ  d ƒ x@ t d ƒ D]2 } | j | j ƒ |  j | j ƒ  j ƒ  d ƒ qT Wd  S(   Nc           S   s   d S(   Nid   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   K   R   id   i   (   R   R   R   R   t   putR   R   R   (   R   R   t   qR   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_link_to_queueJ   s    	c         C   sÍ   t  j d „  ƒ } t  j d „  ƒ } t  j d „  ƒ } t ƒ  } | j | j ƒ | j | j ƒ | j | j ƒ | j ƒ  j ƒ  | j ƒ  j ƒ  | j ƒ  j ƒ  g } t | ƒ d d d g k sÉ t | ƒ ‚ d  S(   Nc           S   s   d S(   Nie   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   U   R   c           S   s   d S(   Nif   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   V   R   c           S   s   d S(   Nig   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   W   R   ie   if   ig   (   R   R   R   R   R#   R   t   sortedt   AssertionError(   R   t   p1t   p2t   p3R$   t   results(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_link_to_channelT   s    	3(   R   R   R   R   R%   R,   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ,   s   			
t
   TestUnlinkc           B   s2   e  Z e Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sš   | t  ƒ |  j d | j ƒ  ƒ | j t  ƒ |  j d | j ƒ  ƒ | |  j ƒ |  j d | j ƒ  ƒ | j |  j ƒ |  j d | j ƒ  ƒ | j ƒ  d  S(   Ni   i    (   t   dummy_test_funcR   t	   has_linkst   unlinkt   setUpt   kill(   R   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt
   _test_funcc   s    
c         C   s&   t  j t ƒ } |  j | | j ƒ d  S(   N(   R   R   R.   R3   R   (   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_func_linkr   s    c         C   s&   t  j t ƒ } |  j | | j ƒ d  S(   N(   R   R   R.   R3   t
   link_value(   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_func_link_valuev   s    c         C   s&   t  j t ƒ } |  j | | j ƒ d  S(   N(   R   R   R.   R3   t   link_exception(   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_func_link_exceptionz   s    (   R   R   t   Falset   switch_expectedR3   R4   R6   R8   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR-   `   s
   			t   LinksTestCasec           B   s5   e  Z d Z d d  „ Z d „  Z d „  Z d „  Z RS(   c         C   s   t  | |  j ƒ | ƒ d  S(   N(   t   getattrt   link_method(   R   R   t   listener(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ƒ   s    c            sª   t  ƒ  } |  j | | ƒ t d ƒ } |  j | | j ƒ d g ‰  |  j | ‡  f d †  ƒ x@ t d ƒ D]2 } |  j | t  ƒ  ƒ |  j | t d ƒ j ƒ qg W| | ˆ  f S(   Ni   t   initialc             s   ˆ  j  d ƒ S(   NR?   (   t   remove(   t   args(   t   callback_flag(    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   Ž   R   i
   (   R   R   R   R#   R   (   R   R   R   t   queueR   (    (   RB   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt	   set_links†   s    		c         C   s3   t  ƒ  } | | ƒ t ƒ  } | | j ƒ | | f S(   N(   R   R   R#   (   R   R   R   RC   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   set_links_timeout–   s
    	
	c         C   sj   t  t | j d t ƒt k s6 t t | j ƒ  ƒ ƒ ‚ t  t | j d t ƒt k sf t | j ƒ  ƒ ‚ d  S(   Nt   timeout_value(   R   t   DELAYR   t   XR'   t   repr(   R   R   RC   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   check_timed_outŸ   s    6N(   R   R   t   NoneR=   R   RD   RE   RJ   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR;      s
   			c           C   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   return25¤   s    t   TestReturn_linkc           B   sA   e  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   R   c         C   s   |  j  j ƒ  d  |  _  d  S(   N(   R   t
   unlink_allRK   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   cleanup®   s    c         C   sM   t  j t ƒ |  _ x' t d ƒ D] } |  j |  j d ƒ q W|  j j ƒ  d  S(   Ni   i   (   R   R   RL   R   R   t   _test_returnR2   (   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_return²   s    c         C   sŸ   |  j  | ƒ \ } } } |  j | j ƒ } t t d ƒ |  j | ƒ |  j | j ƒ  | ƒ |  j | j ƒ  j ƒ  | ƒ t t ƒ |  j | ƒ |  j | Œ  d  S(   Ni   (	   RD   RE   R7   R    RG   t   assertFalseR   R   RJ   (   R   R   t   resultR   RC   RB   t   xxxxx(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRP   ¸   s    
c         C   s«   |  j  | ƒ \ } } } |  j | j ƒ } | j ƒ  t t ƒ |  j | ƒ |  j | j ƒ  t	 j
 ƒ |  j | j ƒ  j ƒ  t	 j
 ƒ t t ƒ |  j | ƒ |  j | Œ  d  S(   N(   RD   RE   R7   R2   R    RG   RR   t   assertIsInstanceR   R   t   GreenletExitRJ   (   R   R   R   RC   RB   RT   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt
   _test_killÉ   s    


c         C   sA   t  j t t ƒ } |  _ x! t d ƒ D] } |  j | ƒ q& Wd  S(   Ni   (   R   R   R    RG   R   R   RW   (   R   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt	   test_killÚ   s    N(
   R   R   R=   RK   R   RO   RQ   RP   RW   RX   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRM   ©   s   				t   TestReturn_link_valuec           B   s   e  Z d  Z RS(   R5   (   R   R   R=   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRY   à   s   t   TestRaise_linkc           B   s    e  Z d  Z d „  Z d „  Z RS(   R   c         C   sž   |  j  | ƒ \ } } } |  j | j ƒ } t t ƒ | sG t | ƒ ‚ |  j t | j ƒ |  j	 | j ƒ  | ƒ t t ƒ | s t | ƒ ‚ |  j
 | Œ  d  S(   N(   RD   RE   R5   R    RG   R'   R   R
   R   R   RJ   (   R   R   R   RC   RB   RT   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _test_raiseç   s    

c         C   s:   t  j d „  ƒ } x! t d ƒ D] } |  j | ƒ q Wd  S(   Nc           S   s   t  ƒ  j t d ƒ ƒ S(   Nt
   test_raise(   R   R   R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ö   R   i   (   R   R   R   R[   (   R   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR\   õ   s    (   R   R   R=   R[   R\   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRZ   ä   s   	t   TestRaise_link_exceptionc           B   s   e  Z d  Z RS(   R7   (   R   R   R=   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR]   û   s   t	   TestStuffc           B   sŠ   e  Z d  „  Z d „  Z d „  Z e e _ d „  Z e e _ d „  Z d „  Z	 d e
 f d „  ƒ  YZ d „  Z d	 „  Z d
 „  Z d „  Z RS(   c         C   sI   t  j d „  ƒ } |  j | j d ƒ |  j | j j d ƒ | j ƒ  d  S(   Nc           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR     R   i    (   R   R   t   assertGreaterEqualt   minimal_identt   parentt   join(   R   t   g(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_minimal_id  s    c         C   sæ   t  j d „  ƒ } t  j d „  ƒ } t  j d „  ƒ } t  j | | | g d t ƒ|  j | j | j | j g d d d g ƒ t ƒ  } | j | ƒ |  j | j ƒ  d ƒ | j	 | ƒ t ƒ  } | j | ƒ |  j | j ƒ  d ƒ d  S(   Nc           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR     R   c           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   	  R   c           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   
  R   t   raise_errori   i   i   (
   R   R   t   joinallt   TrueR   t   valueR   R   R   R0   (   R   t   xt   yt   zt   e(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_wait_noerrors  s    +		c         C   sy   d „  } t  j | ƒ } t  j d „  ƒ } |  j t t  j | | g d t ƒ|  j t t  j | g d t ƒ| j ƒ  d  S(   Nc           S   s   t  t ƒ d S(   Ni   (   R    RG   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRi     s    
c           S   s   t  ƒ  j t d ƒ ƒ S(   Nt   test_wait_error(   R   R   R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR     R   Re   (   R   R   R   R
   Rf   Rg   Rb   (   R   Ri   Rj   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRn     s    	"c         C   sž   d „  } t  j | ƒ } t  j d „  ƒ } y t  j | | g d t ƒWn= t k
 r† } d t | ƒ k s‡ t t t | ƒ ƒ ƒ ‚ n Xt  j | | g ƒ d  S(   Nc           S   s   t  d ƒ t d ƒ ‚ d  S(   Ngš™™™™™¹?t   first(   R    R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRo   #  s    
c           S   s   t  ƒ  j t d ƒ ƒ S(   Nt   second(   R   R   R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   '  R   Re   Rp   (   R   R   Rf   Rg   R
   t   strR'   RI   (   R   Ro   t   at   bt   ex(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_joinall_exception_order!  s    	.c         C   s{   d „  } d „  } t  j | ƒ } t  j | ƒ } t  j | | g d t d d ƒt | ƒ t | ƒ | j ƒ  t | ƒ d  S(   Nc           S   s   t  d ƒ ‚ d  S(   Nt   count(   R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   raises_but_ignored2  s    c           S   s   x t  r t d ƒ q Wd  S(   Ngš™™™™™¹?(   Rg   R    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   sleep_forever5  s    	Re   Rv   i   (   R   R   Rf   R9   t   assert_readyt   assert_not_readyR2   (   R   Rw   Rx   t   sleepert   raiser(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_joinall_count_raise_error/  s    		


c            s	  t  j d „  ƒ } g  ‰  ‡  f d †  } ‡  f d †  } d „  } | j | ƒ | j | ƒ | j | ƒ t t d ƒ |  j ˆ  d d g d d g g ƒ t  j d „  ƒ } g  ‰  | j | ƒ | j | ƒ | j | ƒ t t d ƒ |  j ˆ  d d g d d g g ƒ d  S(   Nc           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   I  R   c             s   ˆ  j  d ƒ t d ƒ ‚ d  S(   Ni
   t	   listener1(   t   appendR
   (   t   _args(   R+   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR~   L  s    c             s   ˆ  j  d ƒ t d ƒ ‚ d  S(   Ni   t	   listener2(   R   R
   (   R€   (   R+   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   P  s    c          W   s   t  d ƒ ‚ d  S(   Nt	   listener3(   R
   (   R€   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR‚   T  s    i
   i   c           S   s   t  ƒ  j t d ƒ ƒ S(   Nt   test_multiple_listeners_error(   R   R   R
   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ]  R   (   R   R   R   R    RG   t   assertIn(   R   R   R~   R   R‚   (    (   R+   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRƒ   D  s"    	"t   Resultsc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   R+   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   __init__g  s    c         C   s0   | j  |  j ƒ |  j j d ƒ t d ƒ ‚ d  S(   Ni   R~   (   R0   R   R+   R   R
   (   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR~   j  s    c         C   s0   | j  |  j ƒ |  j j d ƒ t d ƒ ‚ d  S(   Ni   R   (   R0   R~   R+   R   R
   (   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   o  s    c         C   s   t  d ƒ ‚ d  S(   NR‚   (   R
   (   R   t   _p(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR‚   t  s    (   R   R   R†   R~   R   R‚   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR…   e  s   			c         C   s[   |  j  ƒ  } | | j ƒ | | j ƒ | | j ƒ t t d ƒ |  j d g | j ƒ d  S(   Ni
   i   (   R…   R~   R   R‚   R    RG   R   R+   (   R   R‡   R   R+   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt%   _test_multiple_listeners_error_unlinkw  s    c         C   s3   t  j d „  ƒ } |  j | | j ƒ | j ƒ  d  S(   Nc           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   „  R   (   R   R   Rˆ   R   R2   (   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt2   test_multiple_listeners_error_unlink_Greenlet_linkƒ  s    c         C   s)   t  j d „  ƒ } |  j | | j ƒ d  S(   Nc           S   s   d S(   Ni   (    (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   ‰  R   (   R   R   Rˆ   t   rawlink(   R   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt5   test_multiple_listeners_error_unlink_Greenlet_rawlinkˆ  s    c         C   s3   t  ƒ  } t j | j d ƒ |  j | | j ƒ d  S(   Ni   (   R   R   R   t   setRˆ   RŠ   (   R   Rl   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt8   test_multiple_listeners_error_unlink_AsyncResult_rawlinkŒ  s    	(   R   R   Rd   Rm   Rn   Rg   t   ignore_leakcheckRu   R}   Rƒ   t   objectR…   Rˆ   R‰   R‹   R   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR^   ÿ   s   			
					!			c          G   s   d  S(   N(    (   R€   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR.   ’  s    t   Ac           B   s   e  Z d  „  Z RS(   c         C   s   d  S(   N(    (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   method˜  s    (   R   R   R‘   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   –  s   s   -?0x[0123456789abcdef]+L?t   Subclassc           B   s   e  Z RS(    (   R   R   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR’     s   t   TestStrc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   t  j j t ƒ } |  j t j d t | ƒ ƒ j d ƒ ƒ t	 | ƒ | j
 ƒ  t | ƒ |  j t j d t | ƒ ƒ j d ƒ t | ƒ ƒ d  S(   NRH   s   at X: dummy_test_func>s    at X: dummy_test_func>(   R   t   GreenletR   R.   t
   assertTruet   hexobjt   subRq   t   endswithRz   Rb   Ry   (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_function¢  s    (


c         C   so  t  j j t ƒ  j ƒ } t j d t | ƒ ƒ } | j t	 d ƒ } |  j
 | j d ƒ | ƒ t | d ƒ t j d t | ƒ ƒ } | j t	 d ƒ } |  j
 | j d ƒ | ƒ d | _ t j d t | ƒ ƒ } | j t	 d ƒ } |  j
 | j d ƒ | ƒ |  j
 | j d ƒ ƒ t | ƒ | j ƒ  t | ƒ t j d t | ƒ ƒ } | j t	 d ƒ } |  j
 | j d ƒ ƒ d  S(	   NRH   t   modules   <Greenlet at X:t   names   <Greenlet "Greenlet-t   Foos   <Greenlet "Foo"s8   at X: <bound method A.method of <module.A object at X>>>(   R   R”   R   R   R‘   R–   R—   Rq   t   replaceR   R•   t
   startswithR<   R›   R˜   Rz   Rb   Ry   (   R   Rc   t   str_g(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_methodª  s&    	


c         C   s»   t  ƒ  } t j d t | ƒ ƒ } | j t d ƒ } |  j | j d ƒ | ƒ |  j | j d ƒ ƒ t  d  d d d ƒ} t j d t | ƒ ƒ } | j t d ƒ } |  j | j d ƒ ƒ d  S(	   NRH   Rš   s
   <Subclass s   at X: _run>t   questiont   answeri*   s#    at X: _run('question', answer=42)>(
   R’   R–   R—   Rq   R   R   R•   Rž   R˜   RK   (   R   Rc   RŸ   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_subclassÂ  s    	(   R   R   R™   R    R£   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR“      s   		t   TestJoinc           B   s   e  Z d  „  Z RS(   c         C   s;   t  j t  j d ƒ } z | j d | ƒ SWd  | j ƒ  Xd  S(   Ni
   t   timeout(   R   R   R    Rb   R2   (   R   R¥   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   waitÑ  s    (   R   R   R¦   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR¤   Ï  s   t   TestGetc           B   s   e  Z d  „  Z RS(   c         C   s;   t  j t  j d ƒ } z | j d | ƒ SWd  | j ƒ  Xd  S(   Ni
   R¥   (   R   R   R    R   R2   (   R   R¥   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR¦   Û  s    (   R   R   R¦   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR§   Ù  s   t   TestJoinAll0c           B   s   e  Z e j ƒ  Z d  „  Z RS(   c         C   s   t  j |  j g d | ƒd  S(   NR¥   (   R   Rf   Rc   (   R   R¥   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR¦   ç  s    (   R   R   R   R”   Rc   R¦   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR¨   ã  s   t   TestJoinAllc           B   s   e  Z d  „  Z RS(   c         C   sA   t  j t  j d ƒ } z t  j | g d | ƒWd  | j ƒ  Xd  S(   Ni
   R¥   (   R   R   R    Rf   R2   (   R   R¥   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR¦   í  s    (   R   R   R¦   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR©   ë  s   t	   TestBasicc           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 d „  Z d „  Z d „  Z RS(   c         C   s_   |  j  t t j d ƒ |  j  t t j d ƒ |  j  t t j d ƒ |  j  t t j d d ƒ d  S(   Ni   (   R   t	   TypeErrorR   R   t	   spawn_rawt   spawn_later(   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_spawn_non_callable÷  s    c            sz   g  ‰  ‡  f d †  } t  j | d d d ƒ} t  j d ƒ | sG t ‚ |  j ˆ  d d ƒ |  j ˆ  d i d d 6ƒ d  S(   Nc             s   ˆ  j  |  ƒ ˆ  j  | ƒ d  S(   N(   R   (   RA   t   kwargs(   Rh   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   f  s    i   R›   Rh   g{®Gáz„?i    (   i   (   R   R¬   R    R'   R   (   R   R°   Rc   (    (   Rh   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_spawn_raw_kwargs   s    c         C   s–  g  } d d „ } t  j | d d d ƒ} | j | j ƒ | sS t t | ƒ ƒ ‚ | j sc t ‚ | j ss t ‚ | j ƒ  s† t ‚ | j	 ƒ  s™ t ‚ | j
 d  k s® t ‚ | j d  k sÃ t ‚ | j ƒ  | sÙ t ‚ | j sé t ‚ | j sø t ‚ | j ƒ  st ‚ | j	 ƒ  st ‚ | j
 d  k s3t ‚ | j d  k sHt ‚ t  j d ƒ |  j | ƒ |  j | j | ƒ |  j | j | ƒ |  j | j ƒ  | ƒ |  j | j	 ƒ  | ƒ |  j | j
 | ƒ |  j | j | ƒ |  j | ƒ t  j d ƒ | st ‚ | j st ‚ | j s t ‚ | j ƒ  s2t ‚ | j	 ƒ  sDt ‚ | j
 d k sYt ‚ | j d  k snt ‚ | | g k s’t j s’t | ƒ ‚ d  S(   Ni   c         S   s   t  j |  ƒ | S(   N(   R   R    (   t   delayt   return_value(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   func  s    g{®Gáz„?R³   i   gü©ñÒMbP?g{®Gáz”?(   R   R”   RŠ   R   R'   t   boolt   deadt   startedt   readyt
   successfulRh   RK   R!   t   startR    R•   RR   t   assertIsNonet	   greentestt   RUNNING_ON_CI(   R   t	   link_testR´   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_simple_exit  sJ    
c         C   s  g  } d d „ } t  j | t j d d ƒ} | j | j ƒ | j ƒ  t  j ƒ  t  j t j ƒ |  j	 | ƒ |  j
 | j ƒ |  j	 | j ƒ |  j
 | j ƒ  ƒ |  j	 | j ƒ  ƒ |  j | j ƒ |  j | j j d ƒ | | g k sþ t j sþ t | ƒ ‚ d  S(   Ni   c         S   s3   t  j |  ƒ t d ƒ } t | d | ƒ | ‚ d  S(   Nt   test_error_exitt   myattr(   R   R    R
   t   setattr(   R²   R³   t   error(    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR´   >  s    R³   i   (   R   R”   R	   t   SMALLEST_RELIABLE_DELAYRŠ   R   Rº   R    t
   LARGE_TICKRR   R•   R¶   R·   R¸   R¹   R»   Rh   R   R!   RÁ   R¼   t   RUNNING_ON_APPVEYORR'   (   R   R¾   R´   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRÀ   ;  s    

c         C   sº   | s t  ‚ | j s t  ‚ | j s, t  ‚ | j ƒ  s> t  ‚ | j ƒ  sk t  t | ƒ | j | j f ƒ ‚ t | j t	 j
 ƒ s¡ t  t | ƒ | j | j f ƒ ‚ | j d  k s¶ t  ‚ d  S(   N(   R'   R¶   R·   R¸   R¹   RI   Rh   R!   t
   isinstanceR   RV   RK   (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _assertKilledT  s    -6c         C   s+   |  j  | ƒ t j d ƒ |  j  | ƒ d  S(   Ng{®Gáz„?(   RÈ   R   R    (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   assertKilled]  s    c         C   sT   | j  d | ƒ | s& t j d ƒ n  |  j | ƒ | j  d | ƒ |  j | ƒ d  S(   Nt   blockg{®Gáz„?(   R2   R   R    RÉ   (   R   Rc   RÊ   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRW   b  s    c            sm   g  } g  ‰  t  j ‡  f d †  ƒ } | j | j ƒ |  j | d | ƒˆ  sT t ‚ | | g k si t ‚ d  S(   Nc              s   ˆ  j  d ƒ S(   Ni   (   R   (    (   RS   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   n  R   RÊ   (   R   R”   R   R   RW   R'   (   R   RÊ   R¾   Rc   (    (   RS   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _test_kill_not_startedk  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RË   Rg   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_not_started_blockt  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RË   R9   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_not_started_noblockw  s    c            s}   g  ‰  g  } t  j ‡  f d †  ƒ } | j | j ƒ | j ƒ  |  j | d | ƒˆ  sd t ˆ  ƒ ‚ | | g k sy t ‚ d  S(   Nc              s   ˆ  j  d ƒ S(   Ni   (   R   (    (   RS   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   }  R   RÊ   (   R   R”   R   R   Rº   RW   R'   (   R   RÊ   R¾   Rc   (    (   RS   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _test_kill_just_startedz  s    
c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÎ   Rg   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_just_started_block„  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÎ   R9   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_just_started_noblock‡  s    c            se   g  ‰  g  } t  j ‡  f d †  ƒ } | j | j ƒ | j d ƒ |  j | d | ƒˆ  sa t ‚ d  S(   Nc              s   ˆ  j  d ƒ S(   Ni   (   R   (    (   RS   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR     R   i   RÊ   (   R   R”   R   R   t   start_laterRW   R'   (   R   RÊ   R¾   Rc   (    (   RS   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _test_kill_just_started_laterŠ  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÒ   Rg   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt"   test_kill_just_started_later_block“  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÒ   R9   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt$   test_kill_just_started_later_noblock–  s    c         C   sd   g  } t  j t  j d ƒ } | j | j ƒ |  j | d | ƒt  j d ƒ | | g k s` t ‚ d  S(   Ni
   RÊ   g{®Gáz„?(   R   R   R    R   R   RW   R'   (   R   RÊ   R¾   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   _test_kill_running™  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÕ   Rg   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_running_block¡  s    c         C   s   |  j  d t ƒ d  S(   NRÊ   (   RÕ   R9   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_running_noblock¤  s    c         C   sP   |  j  t j ƒ  j ƒ t j t j ƒ } | j ƒ  | j ƒ  |  j  | j ƒ d  S(   N(   RR   R   R”   t   exc_infoR   R    Rº   Rb   (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_exc_info_no_error§  s
    

c            sï   d  } } ‡  f d †  } t j | ƒ } t j | ƒ } ˆ  j t t ƒ  d ƒ t ƒ  ƒ ˆ  j | j | j ƒ | j ƒ  | j	 ƒ  t
 j | ƒ } ˆ  j | j ƒ ˆ  j | j | j ƒ ˆ  j | j ƒ  t ƒ  ƒ x | j sê t
 j d ƒ qÑ Wd  S(   Nc             sB   t  j ƒ  }  ˆ  j |  j t ƒ  j ƒ ˆ  j |  j ƒ  t ƒ  ƒ d  S(   N(   R   R”   R    t   spawn_tree_localsR   t   spawning_greenlet(   t   child(   R   (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR´   ±  s    RÚ   g{®Gáz„?(   RK   R   R”   RR   t   hasattrR   t   assertIsNotRÚ   Rº   Rb   R   R¬   t   assertIsNotNoneR    RÛ   R¶   R    (   R   Rc   t   g2R´   t   raw(    (   R   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_tree_locals¯  s    



c            s}  i d d 6‰  ‡  f d †  } t  j j | ƒ z9t  j d „  ƒ } |  j t | d ƒ ƒ | j ƒ  |  j ˆ  d d ƒ t  j d d „  ƒ } |  j t | d ƒ ƒ | j ƒ  |  j ˆ  d d	 ƒ t  j d
 „  ƒ } | j	 ƒ  |  j t | d ƒ ƒ | j ƒ  |  j ˆ  d d ƒ t  j j
 | ƒ t  j d „  ƒ } |  j t | d ƒ ƒ | j ƒ  |  j ˆ  d d ƒ Wd  t  j j
 | ƒ Xd  S(   Ni    t   #c            s   ˆ  d c d 7<t  |  _ d  S(   NRã   i   (   Rg   t   _called_test(   t   gr(   t   called(    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   cbÉ  s    c           S   s   d  S(   N(   RK   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   Ï  R   Rä   i   gñhãˆµøä>c           S   s   d  S(   N(   RK   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   Ô  R   i   c           S   s   d  S(   N(   RK   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   Ù  R   i   c           S   s   d  S(   N(   RK   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   à  R   (   R   R”   t   add_spawn_callbackR   R•   RÝ   Rb   R   R­   Rº   t   remove_spawn_callbackRR   (   R   Rç   Rc   (    (   Ræ   sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_add_spawn_callbackÆ  s.    




c         C   ss   d „  } y t  j } Wn  t k
 r8 t j d ƒ ‚ n X| t  _ z  t  j ƒ  } |  j | j ƒ Wd  | t  _ Xd  S(   Nc           S   s   t  d ƒ ‚ d  S(   Ns   call stack is not deep enough(   t
   ValueError(    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyR   è  s    s    Cannot mock when Cython compiled(   R   t   sys_getframet   AttributeErrort   unittestt   SkipTestR”   R»   t   spawning_stack(   R   R   t   ogfRÜ   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_getframe_value_errorç  s    		(   R   R   R®   R±   R¿   RÀ   RÈ   RÉ   RW   RË   RÌ   RÍ   RÎ   RÏ   RÐ   RÒ   RÓ   RÔ   RÕ   RÖ   R×   RÙ   Râ   Rê   Rò   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRª   õ  s.   				.											
												!t	   TestStartc           B   s   e  Z d  „  Z RS(   c         C   s³   t  j t  j d ƒ } | j s$ t ‚ | j s4 t ‚ | j ƒ  | j sM t ‚ | j s] t ‚ | j ƒ  | j sw t ‚ | j s† t ‚ | j ƒ  | j s  t ‚ | j s¯ t ‚ d  S(   Ng{®Gáz„?(   R   R   R    R·   R'   R¶   Rº   Rb   (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   testù  s    


(   R   R   Rô   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRó   ÷  s   c         C   sJ   |  j  s t |  ƒ ‚ |  j ƒ  s- t |  ƒ ‚ t |  ƒ sF t |  ƒ ‚ d  S(   N(   R¶   R'   R¸   Rµ   (   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRy     s    c         C   s3   |  j  s t |  ƒ ‚ |  j ƒ  s/ t |  ƒ ‚ d  S(   N(   R¶   R'   R¸   (   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRz     s    t   TestRefc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   t  |  _ t j ƒ  d  S(   N(   R9   R:   R   R”   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt	   test_init  s    	c         C   s   t  j t  j d ƒ j ƒ  d  S(   Ni
   (   R   R   R    R2   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_scheduled  s    c         C   s8   t  j t  j d ƒ } z t  j d ƒ Wd  | j ƒ  Xd  S(   Ni
   gü©ñÒMbP?(   R   R   R    R2   (   R   Rc   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_kill_started  s    (   R   R   Rö   R÷   Rø   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRõ     s   		s   Needs C extensiont   TestCExtc           B   s   e  Z d  „  Z RS(   c         C   s0   |  j  t j j d ƒ |  j  t j j d ƒ d  S(   Ns   gevent._greenlet(   R   R   R”   R   t   SpawnedLink(   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   test_c_extension(  s    (   R   R   Rû   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRù   %  s   s   Needs pure pythont   TestPurec           B   s   e  Z d  „  Z RS(   c         C   s0   |  j  t j j d ƒ |  j  t j j d ƒ d  S(   Ns   gevent.greenlet(   R   R   R”   R   Rú   (   R   (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt	   test_pure1  s    (   R   R   Rý   (    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyRü   .  s   t   __main__(<   t   reRî   t   gevent.testingt   testingR¼   R   R    R   R   R   t   gevent.eventR   t   gevent.queueR   R   t   gevent.testing.timingR   R   R	   t
   SMALL_TICKRG   R9   t   TestCaset   error_fatalt   ExpectedExceptionR
   R   R-   R;   RL   RM   RY   RZ   R]   R^   R.   R   R   t   compilet   IR–   R”   R’   R“   R¤   R§   R¨   R©   Rª   Ró   Ry   Rz   Rõ   t   skipOnPurePythonRù   t   skipWithCExtensionsRü   RH   R   t   main(    (    (    sT   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenlet.pyt   <module>   s\   	4%	7“	/


ÿ 				