o
    tPf                     @   s   d dl mZmZmZ d dlmZ e  d dlZd dlZd dl	m
Z d dlmZ d dlZdd Zddddd	d
ZG dd dejZedkrLe  dS dS )    )print_functiondivisionabsolute_import)monkeyN)test__socketc                 C   s*   t   }t| t|| |dd}||fS )NTkeyfilecertfileserver_side)socket	greentestbind_and_listenwrap_socket)private_keycertificateraw_listenersock r   W/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__ssl.pyssl_listener   s   
r   Fr   c                C   sP   t jt jd}t j|_d|_|  |d us|d ur!|j||d |j| |dS )N)protocolF)r	   r   )r
   )	ssl
SSLContextPROTOCOL_TLS	CERT_NONEverify_modecheck_hostnameload_default_certsload_cert_chainr   )r   r   r	   r
   contextr   r   r   r      s   r   c                       s   e Zd ZejejedZejejedZ	e
jZdd Z fddZdZdd	  ZZed
ed
ejjZed
ed
ejjZeddd Zejed fddZejdd Zejdd Z  Z S )TestSSLztest_server.crtztest_server.keyc                 C   s    t | j| j\}}| | |S N)r   privfiler	   _close_on_teardown)selflistenerr   r   r   r   _setup_listener1   s   
zTestSSL._setup_listenerc                    s    |  ttt| j|i |S r!   )r#   r   superr    create_connection)r$   argskwargs	__class__r   r   r(   6   s   zTestSSL.create_connectionFs   helloi zSometimes misses datazNot clear why we're skippingc                    s   g t j fddd}  }|d zHttdtj} | | j	 W d    n1 s4w   Y  W |
  |  d d   d S W |
  |  d d   d S |
  |  d d   w )Nc                      s     j S r!   )appendr%   acceptr   r$   server_sockr   r   <lambda>T   s    z3TestSSL.test_ssl_sendall_timeout0.<locals>.<lambda>)targetFSSLWantWriteErrorr   )r   Threadr(   setblockinggetattrr   SSLErrorassertRaisessendall_test_sendall_datajoinclose)r$   acceptorclientexpectedr   r/   r   test_ssl_sendall_timeout0O   s&   
z!TestSSL.test_ssl_sendall_timeout0zNo longer raises SSLErrorc                    s@   |  tj tt|   W d    d S 1 sw   Y  d S r!   )r8   r   r7   r'   r    test_empty_sendr$   r+   r   r   rA   n   s   "zTestSSL.test_empty_sendc                 C      d S r!   r   rB   r   r   r   test_sendall_nonblocking}      z TestSSL.test_sendall_nonblockingc                 C   rC   r!   r   rB   r   r   r   $test_connect_with_type_flags_ignored   rE   z,TestSSL.test_connect_with_type_flags_ignored)!__name__
__module____qualname__ospathr;   dirname__file__r	   r"   r   timeoutTIMEOUT_ERRORr&   r(    _test_sendall_timeout_check_timer:   	data_sentr   skipOnMacOnCIskipOnManylinuxr   TestTCPtest_sendall_arraytest_sendall_strskipOnWindowsr@   ignores_leakcheckskipOnPy310rA   rD   rF   __classcell__r   r   r+   r   r    !   s6    	

r    __main__)
__future__r   r   r   geventr   	patch_allrJ   r   gevent.testingtestingr   gevent.testsr   r   r   r   rT   r    rG   mainr   r   r   r   <module>   s    h