o
    ÑtPf‚  ã                   @   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   úf/var/www/html/humari/django-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ÿ