ó
úR_c           @   s´   d  d l  m Z e j   d  d l Z d  d l Z d  d l j Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l m Z d e j f d     YZ d   Z e d k r° e j   n  d S(   i˙˙˙˙(   t   monkeyN(   t   LoopExitt   TestSSLc           B   sÜ   e  Z e j j e j j e  d   Z e j j e j j e  d  Z e	 e
 d e
 j  Z d   Z d   Z e Z d d Z Z e j d  d    Z d	   Z e j d
    Z e j d    Z e j d    Z RS(   s   test_server.crts   test_server.keyt   sslerrorc         C   s/   t  d |  j |  j  \ } } |  j |  | S(   Ns	   127.0.0.1i    (   s	   127.0.0.1i    (   t   ssl_listenert   privfilet   certfilet   _close_on_teardown(   t   selft   listenert   raw_listener(    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt   _setup_listener   s    c         O   s"   t  j t t |   j | |    S(   N(   t   sslt   wrap_sockett   superR   t   create_connection(   R   t   argst   kwargs(    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyR      s    t   helloi áős   Not clear why we're skippingc            sŞ   g   t  j d    f d    }   j   } | j t  z? t t d t j  }   j |   | j	   j
  Wd  QXWd  | j   | j    d d j   Xd  S(   Nt   targetc              s    j    j j    S(   N(   t   appendR	   t   accept(    (   R   t   server_sock(    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt   <lambda>/   t    t   SSLWantWriteErrori    (   t   test__sockett   ThreadR   t   setblockingt   Falset   getattrR   t   SSLErrort   assertRaisest   sendallt   _test_sendall_datat   joint   close(   R   t   acceptort   clientt   expected(    (   R   R   sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt   test_ssl_sendall_timeout0*   s    

c         C   sV   y t  t |   j   Wn8 t k
 rQ t j rK t j rK t j d   n    n Xd  S(   Ns*   libuv on Windows sometimes raises LoopExit(	   R   R   t   test_fullduplexR   t	   greentestt   LIBUVt   WINt   unittestt   SkipTest(   R   (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyR)   >   s    c         C   s0   |  j  t j   t t |   j   Wd  QXd  S(   N(   R    R   R   R   R   t   test_empty_send(   R   (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyR/   H   s    c         C   s   d  S(   N(    (   R   (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt   test_sendall_nonblockingV   s    c         C   s   d  S(   N(    (   R   (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt$   test_connect_with_type_flags_ignored[   s    (   t   __name__t
   __module__t   ost   pathR#   t   dirnamet   __file__R   R   R   t   sockett   timeoutt   TIMEOUT_ERRORR   R   R   t    _test_sendall_timeout_check_timeR"   t	   data_sentR*   t   skipOnWindowsR(   R)   t   ignores_leakcheckR/   R0   R1   (    (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyR      s   !!			
c         C   s;   t  j    } t j | |   t j | | |  } | | f S(   N(   R8   R*   t   bind_and_listenR   R   (   t   addresst   private_keyt   certificateR
   t   sock(    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyR   `   s    t   __main__(   t   geventR    t	   patch_allR4   R8   t   gevent.testingt   testingR*   R   R   R-   t
   gevent.hubR   t   TestTCPR   R   R2   t   main(    (    (    sO   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__ssl.pyt   <module>   s    
Q	