§
    ‹ŸjN  ã                   ó¨   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  G d„ d¦  «        Z G d„ d	ee	¦  «        Z G d
„ dee	¦  «        ZdS )é    N)Ú	validator)Ú
RuleRouter)ÚAsyncHTTPTestCaseÚgen_test)ÚWSGIContainerc                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚWSGIAppMixinc                 ó   — t          ¦   «         ‚©N)ÚNotImplementedError©Úselfs    úc/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/wsgi_test.pyÚget_executorzWSGIAppMixin.get_executor   s   € Ý!Ñ#Ô#Ð#ó    c                 óð   ‡— |                       ¦   «         Št          j        dd¬¦  «        | _        ˆfd„}t	          d || j        ¦  «        fd || j        ¦  «        fd || j        ¦  «        fg¦  «        S )Né   g333333Ó?)Útimeoutc                 ó@   •— t          t          | ¦  «        ‰¬¦  «        S )N)Úexecutor)r   r   )Úappr   s    €r   Úmake_containerz,WSGIAppMixin.get_app.<locals>.make_container   s   ø€ Ý ¥¨3¡¤¸(ÐCÑCÔCÐCr   ú/simpleú/barrierú/streaming_barrier)r   Ú	threadingÚBarrierÚbarrierr   Úsimple_wsgi_appÚbarrier_wsgi_appÚstreaming_barrier_wsgi_app)r   r   r   s     @r   Úget_appzWSGIAppMixin.get_app   s£   ø€ Ø×$Ò$Ñ&Ô&ˆõ !Ô(¨°CÐ8Ñ8Ô8ˆŒð	Dð 	Dð 	Dð 	Dð 	Dõ à˜N˜N¨4Ô+?Ñ@Ô@ÐAØ˜^˜^¨DÔ,AÑBÔBÐCØ% ~ ~°dÔ6UÑ'VÔ'VÐWðñ
ô 
ð 	
r   c                 ó(   — d}dg} |||¦  «         d S )Nz200 OK)zContent-Typez
text/plain© )r   Ústart_responseÚstatusÚresponse_headerss       r   Úrespond_plainzWSGIAppMixin.respond_plain"   s)   € ØˆØ:Ð;ÐØˆ�vÐ/Ñ0Ô0Ð0Ð0Ð0r   c                 ó2   — |                       |¦  «         dgS )Nó   Hello world!)r(   )r   Úenvironr%   s      r   r   zWSGIAppMixin.simple_wsgi_app'   s   € Ø×Ò˜>Ñ*Ô*Ð*ØÐ Ð r   c                 óœ   — |                       |¦  «         	 | j                             ¦   «         }d|z  gS # t          j        $ r dgcY S w xY w)Ns   ok %dó   broken barrier©r(   r   Úwaitr   ÚBrokenBarrierError©r   r+   r%   Úns       r   r    zWSGIAppMixin.barrier_wsgi_app+   sk   € Ø×Ò˜>Ñ*Ô*Ð*ð	"Ø”×!Ò!Ñ#Ô#ˆAð ˜q‘L�>Ð!øõ Ô+ð 	'ð 	'ð 	'Ø%Ð&Ð&Ð&Ð&ð	'øøøs   —6 ¶AÁ
Ac              #   ó²   K  — |                       |¦  «         dV — 	 | j                             ¦   «         }d|z  V — d S # t          j        $ r dV — Y d S w xY w)Ns   ok s   %dr-   r.   r1   s       r   r!   z'WSGIAppMixin.streaming_barrier_wsgi_app4   sƒ   è è € Ø×Ò˜>Ñ*Ô*Ð*Øˆˆˆð	Ø”×!Ò!Ñ#Ô#ˆAð ˜!‘)ˆOˆOˆOˆOˆOøõ Ô+ð 	$ð 	$ð 	$Ø#Ð#Ð#Ð#Ð#Ð#Ð#ð	$øøøs   �? ¿AÁAN)	Ú__name__Ú
__module__Ú__qualname__r   r"   r(   r   r    r!   r$   r   r   r	   r	      sn   € € € € € ð$ð $ð $ð
ð 
ð 
ð"1ð 1ð 1ð
!ð !ð !ð"ð "ð "ðð ð ð ð r   r	   c                   óF   — e Zd Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚWSGIContainerDummyExecutorTestc                 ó   — d S r   r$   r   s    r   r   z+WSGIContainerDummyExecutorTest.get_executor@   s   € Øˆtr   c                 óf   — |                       d¦  «        }|                      |j        d¦  «         d S ©Nr   r*   ©ÚfetchÚassertEqualÚbody©r   Úresponses     r   Útest_simplez*WSGIContainerDummyExecutorTest.test_simpleC   ó1   € Ø—:’:˜iÑ(Ô(ˆØ×Ò˜œ¨Ñ8Ô8Ð8Ð8Ð8r   c              ƒ   ó^  K  — | j                              ¦   «          t          j        | j                             |                      d¦  «        ¦  «        | j                             |                      d¦  «        ¦  «        ¦  «        ƒ d {V —†}|D ]}|                      |j        d¦  «         Œd S )Nr   r-   ©	r   ÚresetÚasyncioÚgatherÚhttp_clientr=   Úget_urlr>   r?   ©r   ÚrespsÚresps      r   Útest_concurrent_barrierz6WSGIContainerDummyExecutorTest.test_concurrent_barrierG   sÀ   è è € àŒ×ÒÑÔÐÝ”nØÔ×"Ò" 4§<¢<°
Ñ#;Ô#;Ñ<Ô<ØÔ×"Ò" 4§<¢<°
Ñ#;Ô#;Ñ<Ô<ñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð ð 	;ð 	;ˆDØ×Ò˜TœYÐ(9Ñ:Ô:Ð:Ð:ð	;ð 	;r   c              ƒ   ó^  K  — | j                              ¦   «          t          j        | j                             |                      d¦  «        ¦  «        | j                             |                      d¦  «        ¦  «        ¦  «        ƒ d {V —†}|D ]}|                      |j        d¦  «         Œd S )Nr   s   ok broken barrierrE   rK   s      r   Ú!test_concurrent_streaming_barrierz@WSGIContainerDummyExecutorTest.test_concurrent_streaming_barrierQ   sÂ   è è € àŒ×ÒÑÔÐÝ”nØÔ×"Ò" 4§<¢<Ð0DÑ#EÔ#EÑFÔFØÔ×"Ò" 4§<¢<Ð0DÑ#EÔ#EÑFÔFñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð ð 	>ð 	>ˆDØ×Ò˜TœYÐ(<Ñ=Ô=Ð=Ð=ð	>ð 	>r   N©r4   r5   r6   r   rB   r   rN   rP   r$   r   r   r8   r8   ?   sh   € € € € € ðð ð ð9ð 9ð 9ð ð;ð ;ñ „Xð;ð ð>ð >ñ „Xð>ð >ð >r   r8   c                   óF   — e Zd Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚWSGIContainerThreadPoolTestc                 ó>   — t           j                             ¦   «         S r   )Ú
concurrentÚfuturesÚThreadPoolExecutorr   s    r   r   z(WSGIContainerThreadPoolTest.get_executor]   s   € ÝÔ!×4Ò4Ñ6Ô6Ð6r   c                 óf   — |                       d¦  «        }|                      |j        d¦  «         d S r;   r<   r@   s     r   rB   z'WSGIContainerThreadPoolTest.test_simple`   rC   r   c              ƒ   ó|  K  — | j                              ¦   «          t          j        | j                             |                      d¦  «        ¦  «        | j                             |                      d¦  «        ¦  «        ¦  «        ƒ d {V —†}|                      ddgt          d„ |D ¦   «         ¦  «        ¦  «         d S )Nr   ó   ok 0ó   ok 1c                 ó   — g | ]	}|j         ‘Œ
S r$   ©r?   ©Ú.0rM   s     r   ú
<listcomp>zGWSGIContainerThreadPoolTest.test_concurrent_barrier.<locals>.<listcomp>k   ó   € Ð4QÐ4QÐ4QÀ4°T´YÐ4QÐ4QÐ4Qr   ©	r   rF   rG   rH   rI   r=   rJ   r>   Úsorted©r   rL   s     r   rN   z3WSGIContainerThreadPoolTest.test_concurrent_barrierd   sÃ   è è € àŒ×ÒÑÔÐÝ”nØÔ×"Ò" 4§<¢<°
Ñ#;Ô#;Ñ<Ô<ØÔ×"Ò" 4§<¢<°
Ñ#;Ô#;Ñ<Ô<ñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð 	×Ò˜' 7Ð+­VÐ4QÐ4QÈ5Ð4QÑ4QÔ4QÑ-RÔ-RÑSÔSÐSÐSÐSr   c              ƒ   ó|  K  — | j                              ¦   «          t          j        | j                             |                      d¦  «        ¦  «        | j                             |                      d¦  «        ¦  «        ¦  «        ƒ d {V —†}|                      ddgt          d„ |D ¦   «         ¦  «        ¦  «         d S )Nr   rZ   r[   c                 ó   — g | ]	}|j         ‘Œ
S r$   r]   r^   s     r   r`   zQWSGIContainerThreadPoolTest.test_concurrent_streaming_barrier.<locals>.<listcomp>t   ra   r   rb   rd   s     r   rP   z=WSGIContainerThreadPoolTest.test_concurrent_streaming_barrierm   sÅ   è è € àŒ×ÒÑÔÐÝ”nØÔ×"Ò" 4§<¢<Ð0DÑ#EÔ#EÑFÔFØÔ×"Ò" 4§<¢<Ð0DÑ#EÔ#EÑFÔFñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð 	×Ò˜' 7Ð+­VÐ4QÐ4QÈ5Ð4QÑ4QÔ4QÑ-RÔ-RÑSÔSÐSÐSÐSr   NrQ   r$   r   r   rS   rS   \   sp   € € € € € ð7ð 7ð 7ð9ð 9ð 9ð ðTð Tñ „XðTð ðTð Tñ „XðTð Tð Tr   rS   )rG   Úconcurrent.futuresrU   r   Úwsgiref.validater   Útornado.routingr   Útornado.testingr   r   Útornado.wsgir   r	   r8   rS   r$   r   r   ú<module>rl      s  ðØ €€€Ø Ð Ð Ð Ø Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à &Ð &Ð &Ð &Ð &Ð &Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø &Ð &Ð &Ð &Ð &Ð &ð0ð 0ð 0ð 0ð 0ñ 0ô 0ð 0ðf>ð >ð >ð >ð > \Ð3Dñ >ô >ð >ð:Tð Tð Tð Tð T ,Ð0Añ Tô Tð Tð Tð Tr   