ó
úR‹_c           @   sé   d  Z  d d l m Z e j ƒ  d d l j Z y d d l Z Wn! e k
 rb d d l	 m
 Z n Xy d d l Z Wn! e k
 r– d d l m Z n Xd d l Z d d l m Z d e j f d „  ƒ  YZ e d	 k rå e j ƒ  n  d S(
   sË   Test than modules in gevent.green package are indeed green.
To do that spawn a green server and then access it using a green socket.
If either operation blocked the whole script would block and timeout.
iÿÿÿÿ(   t   monkeyN(   t   request(   t   server(   t   paramst   TestGreennessc           B   s2   e  Z e Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s=   t  j } d t j _ t j | t j ƒ |  _ d |  j _ d  S(   Ns   HTTP/1.0i    (   R   t   DEFAULT_BIND_ADDR_TUPLEt   BaseHTTPServert   BaseHTTPRequestHandlert   protocol_versiont
   HTTPServert   httpdt   request_count(   t   selft   server_address(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyt   setUp/   s    	c         C   s   |  j  j ƒ  d  |  _  d  S(   N(   R
   t   server_closet   None(   R   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyt   tearDown5   s    c         C   s#   |  j  j ƒ  |  j  j d 7_ d  S(   Ni   (   R
   t   handle_requestR   (   R   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyt   serve9   s    c         C   s‘   t  j |  j ƒ } |  j j j ƒ  d } |  j t j ƒ  } t j	 d | ƒ Wd  QX|  j
 | j j d ƒ | j d ƒ |  j
 |  j j d ƒ d  S(   Ni   s   http://127.0.0.1:%siõ  g{®Gáz„?(   t   geventt   spawnR   R
   t   sockett   getsocknamet   assertRaisest   urllib2t	   HTTPErrort   urlopent   assertEqualt	   exceptiont   codet   getR   (   R   R   t   portt   exc(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyt   test_urllib2=   s    (   t   __name__t
   __module__t   Falset   check_totalrefcountR   R   R   R"   (    (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyR   ,   s
   			t   __main__(   t   __doc__R   R    t	   patch_allt   gevent.testingt   testingt	   greentestR   t   ImportErrort   urllibR   R   t   httpR   R   t   TestCaseR   R#   t   main(    (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__greenness.pyt   <module>   s    
