ó
ÐH/\c           @   sz   d  d l  Z  d  d l  m Z d  d l  m Z d  d l j Z d „  Z d e j f d „  ƒ  YZ e	 d k rv e j
 ƒ  n  d S(   iÿÿÿÿN(   t   socket(   t   serverc         C   s$   x |  j  d ƒ r q W|  j ƒ  d  S(   Ni   (   t   recvt   close(   t   sockt   _(    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   readall	   s    t   Testc           B   sA   e  Z e Z d  „  Z d „  Z d „  Z e j d ƒ d „  ƒ Z	 RS(   c         C   s&   t  j d t ƒ |  _  |  j  j ƒ  d  S(   Ns	   127.0.0.1i    (   s	   127.0.0.1i    (   R   t   StreamServerR   t   start(   t   self(    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   setUp   s    c         C   s   |  j  j ƒ  d  S(   N(   R   t   stop(   R
   (    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   tearDown   s    c         C   sÛ   t  j  t  j t  j ƒ } | j d |  j j f ƒ t j | j d ƒ } zƒ t j	 d ƒ | j
 ƒ  | j d d ƒ |  j | j ƒ  | ƒ |  j | j d  ƒ |  j | j t  j ƒ |  j | j j t  j ƒ Wd  | j ƒ  Xd  S(   Nt	   localhosti   gü©ñÒMbP?t   timeoutgš™™™™™¹?(   R    t   AF_INETt   SOCK_STREAMt   connectR   t   server_portt   geventt   spawnR   t   sleepR   t   joint
   assertTruet   readyt   assertEqualt   valuet   Nonet   assertIsInstancet	   exceptiont   errort   errnot   EBADFt   kill(   R
   R   t   receiver(    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   test_recv_closed   s    
s   Sometimes randomly times outc         C   sŸ   t  j  t  j t  j ƒ } | j d |  j j f ƒ t j | j d ƒ } z= t j	 d ƒ |  j
 t | j d ƒ |  j
 t | j d ƒ Wd  | j ƒ  | j ƒ  Xd  S(   NR   i   gü©ñÒMbP?(   R    R   R   R   R   R   R   R   R   R   t   assertRaisest   AssertionErrorR"   R   (   R
   R   R#   (    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   test_recv_twice+   s    
(
   t   __name__t
   __module__t   Falset   error_fatalR   R   R$   t	   greentestt   skipOnLibuvOnCIR'   (    (    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyR      s
   			t   __main__(   R   R    R   t   gevent.testingt   testingR,   R   t   TestCaseR   R(   t   main(    (    (    s>   lib/python2.7/site-packages/gevent/tests/test__socket_close.pyt   <module>   s   	*