o
    U˟i                     @   s   d dl Z zd dlmZ W n ey   d dlZY nw d dlZd dlZd dlmZ	 d dlm
Z
 d dlmZ d dlmZ e	dG dd dejZed	krRe	  dS dS )
    N)request)DEFAULT_XPC_SOCKET_TIMEOUT)util)paramsz4Timing issues sometimes lead to a connection refusedc                   @   sV   e Zd ZdZdejf ZdZdZdZ	dZ
ddd	Zd
d Zdd Zdd Zdd ZdS )Test_wsgiserverzwsgiserver.pyzhttp://%s:8088i  s   <h1>Not Found</h1>NF/c                 C   s   | j | }zi }| jd urd| ji}tj|d tfi |}W n tjy.   t d }Y nw d|j|j	f |
 f}|  |S )Ncontext   z%s %s)URLssl_ctxurllib2urlopenr   	HTTPErrorsysexc_infocodemsgreadclose)selfpathurlkwargsresponseresult r   m/var/www/apps/myagent/mysuperagent/venv/lib/python3.10/site-packages/gevent/tests/test__example_wsgiserver.pyr      s    



zTest_wsgiserver.readc                 C   s*   |  d\}}| |d | |d d S )Nr   z200 OKs   <b>hello world</b>)r   assertEqualr   statusdatar   r   r   _test_hello,   s   zTest_wsgiserver._test_helloc                 C   s,   |  d\}}| |d | || j d S )Nz/xxxz404 Not Found)r   r   not_found_messager   r   r   r   _test_not_found1   s   zTest_wsgiserver._test_not_foundc                 C   s   |   a |   ttj| jf}d }| jr't	 }|
|}|jdd}n|jdd}|d |  |   |d |  | }| |d |  |d urY|  |  W d    d S 1 shw   Y  d S )Nrwb)modes   GET /xxx HTTP/1.0
s   
s   HTTP/1.1 404 Not Found
)running_serverr!   socketcreate_connectionr   DEFAULT_LOCAL_HOST_ADDRPORT_use_sslssl
SSLContextwrap_socketmakefilewriteflushreadliner   r   )r   sockssl_sockr   	sock_fileliner   r   r   _do_test_a_blocking_client6   s*   




"z*Test_wsgiserver._do_test_a_blocking_clientc                 C   s   |    d S )N)r7   )r   r   r   r   test_a_blocking_clientZ   s   z&Test_wsgiserver.test_a_blocking_client)r   )__name__
__module____qualname__exampler   r)   r
   r*   r"   r   r+   r   r!   r#   r7   r8   r   r   r   r   r      s    
$r   __main__)r   urllibr   r   ImportErrorr'   r,   gevent.testingtesting	greentestr   r   r   skipOnCI
TestServerr   r9   mainr   r   r   r   <module>   s"    K