B
    H/\                 @   s   d dl mZ e  d dlZd dlZd dlmZ d dlZd dl	Z	d dl
Z
d dlmZ G dd dejZdd Zedkr~e  dS )	    )monkeyN)LoopExitc                   s   e Zd ZejejedZejejedZ	e
edejZdd Z fddZdZd	d
  ZZeddd Z fddZej fddZejdd Zejdd Z  ZS )TestSSLztest_server.crtztest_server.keyZsslerrorc             C   s"   t d| j| j\}}| | |S )N)z	127.0.0.1r   )ssl_listenerprivfilecertfileZ_close_on_teardown)selflistenerraw_listener r   5lib/python3.7/site-packages/gevent/tests/test__ssl.py_setup_listener   s    
zTestSSL._setup_listenerc                s   t tt| j||S )N)sslwrap_socketsuperr   create_connection)r   argskwargs)	__class__r   r   r      s    zTestSSL.create_connectionFs   helloi zNot clear why we're skippingc          	      s   g t j fddd}  }|d z4ttdtj} | | j	 W d Q R X W d |
  |  d d   X d S )Nc                  s     j S )N)appendr	   Zacceptr   )r   server_sockr   r   <lambda>/   s    z3TestSSL.test_ssl_sendall_timeout0.<locals>.<lambda>)targetFZSSLWantWriteErrorr   )test__socketZThreadr   Zsetblockinggetattrr   SSLErrorassertRaisesZsendall_test_sendall_datajoinclose)r   ZacceptorZclientZexpectedr   )r   r   r   test_ssl_sendall_timeout0*   s    
z!TestSSL.test_ssl_sendall_timeout0c                sD   yt t|   W n, tk
r>   tjr8tjr8td Y nX d S )Nz*libuv on Windows sometimes raises LoopExit)	r   r   test_fullduplexr   	greentestZLIBUVZWINunittestZSkipTest)r   )r   r   r   r!   >   s    
zTestSSL.test_fullduplexc          	      s*   |  tj tt|   W d Q R X d S )N)r   r   r   r   r   test_empty_send)r   )r   r   r   r$   H   s    zTestSSL.test_empty_sendc             C   s   d S )Nr   )r   r   r   r   test_sendall_nonblockingV   s    z TestSSL.test_sendall_nonblockingc             C   s   d S )Nr   )r   r   r   r   $test_connect_with_type_flags_ignored[   s    z,TestSSL.test_connect_with_type_flags_ignored)__name__
__module____qualname__ospathr   dirname__file__r   r   r   socketZtimeoutZTIMEOUT_ERRORr   r   Z _test_sendall_timeout_check_timer   Z	data_sentr"   ZskipOnWindowsr    r!   Zignores_leakcheckr$   r%   r&   __classcell__r   r   )r   r   r      s   
r   c             C   s*   t   }t||  t|||}||fS )N)r.   r"   Zbind_and_listenr   r   )ZaddressZprivate_keyZcertificater
   Zsockr   r   r   r   `   s    r   __main__)Zgeventr   Z	patch_allr*   r.   Zgevent.testingZtestingr"   r   r   r#   Z
gevent.hubr   ZTestTCPr   r   r'   mainr   r   r   r   <module>   s    Q