o
    ‡e  ã                   @   s  d dl Z d dlmZ d dlZd dlmZ d dlmZ dd„ ZG dd„ dej	ƒZ
d d	d
¡Zd d	d
¡Zd d	d
¡ZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZedkr‚e ¡  dS dS )é    N)Úpywsgi)Útest__serverc                 C   sŽ   | d dkr|dg ƒ dgS | d dkr|dg ƒ dgS | d dkr.t  d¡ |dg ƒ g S | d dkr@t  d	¡ |dg ƒ g S |d
g ƒ g S )NZ	PATH_INFOú/z200 OKs   PONGz/pingz/shortg      à?z/longé
   z404 pywsgi WTF?)ÚgeventÚsleep)ÚenvironZstart_response© r	   úPD:\Projects\ConvertPro\env\Lib\site-packages\gevent/tests/test__server_pywsgi.pyÚapplication
   s    






r   c                   @   s   e Zd ZeeƒZdS )ÚSimpleWSGIServerN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r	   r	   r	   r
   r      s    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                   @   s^   e Zd ZejZeZdZdZ	dZe
dd„ ƒZe
dd„ ƒZe
dd„ ƒZe
d	d
„ ƒZe
dd„ ƒZdS )ÚSettingsTFc                 C   sl   |   ¡ (}| d¡ | ¡ }|  | t¡|tf¡ |  | t¡|tf¡ W d   ƒ d S 1 s/w   Y  d S ©Ns   GET / HTTP/1.0

)ÚmakefileÚwriteÚreadÚ
assertTrueÚ
startswithÚinternal_error_startÚendswithÚinternal_error_end©ÚinstÚconnÚresultr	   r	   r
   Ú	assert5004   s   

ÿÿ"ûzSettings.assert500c                 C   sL   |   ¡ }| d¡ | ¡ }|  |t¡ W d   ƒ d S 1 sw   Y  d S r   )r   r   r   ÚassertEqualÚinternal_error503r   r	   r	   r
   Ú	assert503>   s
   

"ýzSettings.assert503c                 C   s:   |   tj¡ |  ¡  W d   ƒ d S 1 sw   Y  d S ©N)ÚassertRaisesÚsocketÚtimeoutZassertRequestSucceeded)r   r	   r	   r
   ÚassertPoolFullE   s   
"ÿzSettings.assertPoolFullc                 C   s@   |   ¡ }| ¡ }|  |¡ W d   ƒ d S 1 sw   Y  d S r$   )r   r   ZassertFalser   r	   r	   r
   ÚassertAcceptedConnectionErrorJ   s   
"þz&Settings.assertAcceptedConnectionErrorc                 C   s"   t j | |¡}| dt ¡ ¡ |S )NÚlog)r   r   Úfill_default_server_argsÚ
setdefaultr   Z_NoopLog)r   Úkwargsr	   r	   r
   r+   P   s   z!Settings.fill_default_server_argsN)r   r   r   r   Ú
WSGIServerZServerClassr   ZServerSubClassZclose_socket_detectedZrestartabler   r    r#   r(   r)   r+   r	   r	   r	   r
   r   -   s     
	


r   c                   @   ó   e Zd ZeZdS )ÚTestCaseN©r   r   r   r   r	   r	   r	   r
   r0   W   ó    r0   c                   @   r/   )ÚTestDefaultSpawnNr1   r	   r	   r	   r
   r3   Z   r2   r3   c                   @   r/   )ÚTestSSLSocketNotAllowedNr1   r	   r	   r	   r
   r4   ]   r2   r4   c                   @   r/   )ÚTestRawSpawnNr1   r	   r	   r	   r
   r5   `   r2   r5   c                   @   r/   )ÚTestSSLGetCertificateNr1   r	   r	   r	   r
   r6   c   r2   r6   c                   @   r/   )ÚTestPoolSpawnNr1   r	   r	   r	   r
   r7   f   r2   r7   Ú__main__)r&   Zgevent.testingÚtestingZ	greentestr   r   Zgevent.testsr   r   r.   r   Úreplacer   r   r"   r   r0   r3   r4   r5   r6   r7   r   Úmainr	   r	   r	   r
   Ú<module>   s,    û*ÿ