
    i                         d dl mZmZmZ d dlmZ  ej                     d dlZd dlZd dl	m
Z d dlmZ d dlZd ZdddddZ G d	 d
ej                  Zedk    r ej                     dS dS )    )print_functiondivisionabsolute_import)monkeyN)test__socketc                 ~    t          j                     }t          j        |           t          || |d          }||fS )NTkeyfilecertfileserver_side)socket	greentestbind_and_listenwrap_socket)private_keycertificateraw_listenersocks       A/usr/local/lib/python3.11/dist-packages/gevent/tests/test__ssl.pyssl_listenerr      sF    =??Ll+++|[;#') ) )D    Fr	   c                    t          j        t           j                  }t           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   contexts        r   r   r      s    n!  G -G"G   h27CCCt===r   c                       e Zd Zej                            ej                            e          d          Zej                            ej                            e          d          Z	e
j        Zd Z fdZdZddz  xZZ  ej        d            ej        d          ej        j                            Z  ej        d            ej        d          ej        j                            Z ej        d	          d
             Zej         ej        d           fd                        Zej        d             Zej        d             Z xZ S )TestSSLztest_server.crtztest_server.keyc                 j    t          | j        | j                  \  }}|                     |           |S N)r   privfiler   _close_on_teardown)selflistenerr   s      r   _setup_listenerzTestSSL._setup_listener1   s3    !-dmT]!K!K,---r   c           	          |                      t           t          t          |           j        |i |                    S r&   )r(   r   superr$   create_connection)r)   argskwargs	__class__s      r   r.   zTestSSL.create_connection6   sF    &&>gt,,>OOOPPR R 	Rr   Fs   helloi zSometimes misses datazNot clear why we're skippingc                     g t          j         fd          }                                 }|                    d           	 t	          t
          dt
          j                  }                     |          5  |                     j	                   d d d            n# 1 swxY w Y   |
                                 |                                 d         d                                          d S # |
                                 |                                 d         d                                          w xY w)Nc                  \                          j                                                  S r&   )appendr*   accept)r)   server_socks   r   <lambda>z3TestSSL.test_ssl_sendall_timeout0.<locals>.<lambda>T   s(    k6H6HM  ""7$ 7$ r   )targetFSSLWantWriteErrorr   )r   Threadr.   setblockinggetattrr   SSLErrorassertRaisessendall_test_sendall_datajoinclose)r)   acceptorclientexpectedr6   s   `   @r   test_ssl_sendall_timeout0z!TestSSL.test_ssl_sendall_timeout0O   sv    & /$ /$ /$ /$ /$ % % % ''))5!!!
	& s$7FFH""8,, 8 8t67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 MMOOOLLNNNN1##%%%%% MMOOOLLNNNN1##%%%%s1   5C9 =B$C9 $B((C9 +B(,C9 9A
EzNo longer raises SSLErrorc                     |                      t          j                  5  t          t          |                                            d d d            d S # 1 swxY w Y   d S r&   )r>   r   r=   r-   r$   test_empty_send)r)   r1   s    r   rH   zTestSSL.test_empty_sendn   s     s|,, 	3 	3'4  00222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   (AAAc                     d S r&    r)   s    r   test_sendall_nonblockingz TestSSL.test_sendall_nonblocking}   	     	r   c                     d S r&   rJ   rK   s    r   $test_connect_with_type_flags_ignoredz,TestSSL.test_connect_with_type_flags_ignored   rM   r   )!__name__
__module____qualname__ospathrA   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skipOnWindowsrF   ignores_leakcheckskipOnPy310rH   rL   rO   __classcell__)r1   s   @r   r$   r$   !   s        w||BGOOH557HIIHw||BGOOH557HIIH NM  
R R R R R (-$ &.	%99I001HII:!	!"9:: 3	
 	
  H.y./FGG:!	!"9:: 1	
 	
  Y;<<& & =<&<  Y6773 3 3 3 87 ! 3    !     !     r   r$   __main__)
__future__r   r   r   geventr   	patch_allrS   r   gevent.testingtestingr   gevent.testsr   r   r   r   r]   r$   rP   mainrJ   r   r   <module>rl      s   @ @ @ @ @ @ @ @ @ @            				  " " " " " " & % % % % % 



   "&% 	> 	> 	> 	> 	>d d d d dl" d d dP zIN r   