
    i                     "   d dl Z d dlmZ d dlZd dlmZ d dlmZ d Z G d dej	                  Z
d                    dd	          Zd
                    dd	          Zd                    dd	          Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  Zedk    r ej                     dS dS )    N)pywsgi)test__serverc                 B   | d         dk    r |dg            dgS | d         dk    r |dg            dgS | d         dk    r"t          j        d            |dg            g S | d         dk    r"t          j        d	            |dg            g S  |d
g            g S )N	PATH_INFO/z200 OKs   PONGz/pingz/shortg      ?z/long
   z404 pywsgi WTF?)geventsleep)environstart_responses     K/usr/local/lib/python3.11/dist-packages/gevent/tests/test__server_pywsgi.pyapplicationr   
   s    {s""x$$$y{w&&x$$$y{x''Sx$$$	{w&&Rx$$$	N$b)))I    c                   $    e Zd Z ee          ZdS )SimpleWSGIServerN)__name__
__module____qualname__staticmethodr    r   r   r   r      s        ,{++KKKr   r   s#   HTTP/1.1 500 Internal Server Error
   
s   
s   

Internal Server Errors   HTTP/1.1 503 Service Unavailable
Connection: close
Content-type: text/plain
Content-length: 31

Service Temporarily Unavailablec                       e Zd Zej        ZeZdZdZ	dZe
d             Ze
d             Ze
d             Ze
d             Ze
d             ZdS )	SettingsTFc                    |                                  5 }|                    d           |                                }|                     |                    t
                    |t
          f           |                     |                    t                    |t          f           d d d            d S # 1 swxY w Y   d S Ns   GET / HTTP/1.0

)makefilewriteread
assertTrue
startswithinternal_error_startendswithinternal_error_endinstconnresults      r   	assert500zSettings.assert5004   s    ]]__ 	:JJ0111YY[[FOOF--.BCC#%9:< < <OOFOO,>??#%78: : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   BB66B:=B:c                     |                                  5 }|                    d           |                                }|                     |t                     d d d            d S # 1 swxY w Y   d S r   )r   r   r   assertEqualinternal_error503r$   s      r   	assert503zSettings.assert503>   s    ]]__ 	8JJ0111YY[[FV%6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   AA''A+.A+c                     |                      t          j                  5  |                                  d d d            d S # 1 swxY w Y   d S N)assertRaisessockettimeoutassertRequestSucceeded)r%   s    r   assertPoolFullzSettings.assertPoolFullE   s    v~.. 	* 	*'')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AA	Ac                     |                                  5 }|                                }|                     |           d d d            d S # 1 swxY w Y   d S r.   )r   r   assertFalser$   s      r   assertAcceptedConnectionErrorz&Settings.assertAcceptedConnectionErrorJ   s    ]]__ 	%YY[[FV$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   *AAAc                     t           j                            | |          }|                    dt	          j                               |S )Nlog)r   r   fill_default_server_args
setdefaultr   _NoopLog)r%   kwargss     r   r9   z!Settings.fill_default_server_argsP   s=    &??fMM%!2!2333r   N)r   r   r   r   
WSGIServerServerClassr   ServerSubClassclose_socket_detectedrestartabler   r(   r,   r3   r6   r9   r   r   r   r   r   -   s        #K%N K!: : \: 8 8 \8 * * \* % % \%
   \  r   r   c                       e Zd ZeZdS )TestCaseNr   r   r   r   r   r   r   rC   rC   W           HHHr   rC   c                       e Zd ZeZdS )TestDefaultSpawnNrD   r   r   r   rG   rG   Z   rE   r   rG   c                       e Zd ZeZdS )TestSSLSocketNotAllowedNrD   r   r   r   rI   rI   ]   rE   r   rI   c                       e Zd ZeZdS )TestRawSpawnNrD   r   r   r   rK   rK   `   rE   r   rK   c                       e Zd ZeZdS )TestSSLGetCertificateNrD   r   r   r   rM   rM   c   rE   r   rM   c                       e Zd ZeZdS )TestPoolSpawnNrD   r   r   r   rO   rO   f   rE   r   rO   __main__)r0   gevent.testingtesting	greentestr	   r   gevent.testsr   r   r=   r   replacer!   r#   r+   r   rC   rG   rI   rK   rM   rO   r   mainr   r   r   <module>rW      s9    " " " " " "        % % % % % %  (, , , , ,v( , , , ?FFugVV 199%II #
 $+75'#:#: ' ' ' ' '|$ ' ' 'T    |$       |4       lB       <,       L>       L.    zIN r   