Ë
    êmxi  ã                   ól  — d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZmZ  G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z e!dk(  r ejD                  «        yy)é    )ÚfuturesN)ÚFutureÚchain_futureÚrun_on_executorÚ"future_set_result_unless_cancelled)Úutf8Ú
to_unicode)Úgen)ÚIOStream)Ú	TCPServer)ÚAsyncTestCaseÚbind_unused_portÚgen_testc                   ó   — e Zd Zd„ Zy)ÚMiscFutureTestc                 ó   — t        «       }t        |d«       | j                  |j                  «       d«       | j	                  |j                  «       «       t        «       }|j                  «        |j                  «       }t        |d«       | j                  |j                  «       |«       |s!| j                  |j                  «       d«       y y ©Né*   )r   r   ÚassertEqualÚresultÚassertFalseÚ	cancelledÚcancel)ÚselfÚfutÚis_cancelleds      úS/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/concurrent_test.pyÚ'test_future_set_result_unless_cancelledz6MiscFutureTest.test_future_set_result_unless_cancelled#   s–   € Ü‹hˆÜ*¨3°Ô3Ø×Ñ˜Ÿ™› rÔ*Ø×Ñ˜Ÿ™›Ô)ä‹hˆØ�
‰
ŒØ—}‘}“ˆÜ*¨3°Ô3Ø×Ñ˜Ÿ™›¨,Ô7ÙØ×Ñ˜SŸZ™Z›\¨2Õ.ð ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r   "   s   „ ó/r   r   c                   ó,   — e Zd Zed„ «       Zed„ «       Zy)ÚChainFutureTestc              ƒ   óª   K  — t        «       }t        «       }t        ||«       |j                  d«       |ƒ d {  –—† }| j                  |d«       y 7 Œ­wr   )r   r   Ú
set_resultr   )r   r   Úfut2r   s       r   Útest_asyncio_futuresz$ChainFutureTest.test_asyncio_futures3   sF   è ø€ ä!›8ˆÜ"›HˆÜ�S˜$ÔØ�‰�rÔØ—ˆØ×Ñ˜ Õ$ð ús   ‚7A¹AºAc              ƒ   óþ   K  — t        j                  «       }t        j                  «       }t        «       }t        ||«       t        ||«       |j                  d«       |ƒ d {  –—† }| j	                  |d«       y 7 Œ­wr   )r   r   r   r'   r   )r   r   r(   Úfut3r   s        r   Útest_concurrent_futuresz'ChainFutureTest.test_concurrent_futures<   sc   è ø€ ô
 $+§>¡>Ó#3ˆÜ$+§N¡NÓ$4ˆÜ"›HˆÜ�S˜$ÔÜ�T˜4Ô Ø�‰�rÔØ—ˆØ×Ñ˜ Õ$ð ús   ‚A!A=Á#A;Á$A=N)r    r!   r"   r   r)   r,   r#   r   r   r%   r%   2   s(   „ Øñ%ó ð%ð ñ%ó ñ%r   r%   c                   ó0   — e Zd Zej                  d„ «       Zy)Ú	CapServerc              #   ó  K  — |j                  d«      –—}t        |«      }||j                  «       k(  r|j                  d«       n+|j                  t	        d|j                  «       z  «      «       |j                  «        y ­w)Nó   
s   error	already capitalized
zok	%s)Ú
read_untilr	   ÚupperÚwriter   Úclose)r   ÚstreamÚaddressÚdatas       r   Úhandle_streamzCapServer.handle_streamP   se   è ø€ à×&Ñ& uÓ-Ñ-ˆÜ˜$ÓˆØ�4—:‘:“<ÒØ�L‰LÐ8Õ9ð �L‰Lœ˜h¨¯©«Ñ5Ó6Ô7Ø�‰�ùs   ‚B BN)r    r!   r"   r
   Ú	coroutiner8   r#   r   r   r.   r.   O   s   „ Ø‡]�]ñó ñr   r.   c                   ó   — e Zd Zy)ÚCapErrorN)r    r!   r"   r#   r   r   r;   r;   \   s   „ Ør   r;   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBaseCapClientc                 ó   — || _         y ©N©Úport)r   rA   s     r   Ú__init__zBaseCapClient.__init__a   s	   € Øˆ�	r   c                 ó¤   — t        j                  dt        |«      «      }|€t        d«      ‚|j	                  «       \  }}|dk(  r|S t        |«      ‚)Nz
(.*)	(.*)
zdid not matchÚok)ÚreÚmatchr	   Ú	ExceptionÚgroupsr;   )r   r7   ÚmÚstatusÚmessages        r   Úprocess_responsezBaseCapClient.process_responsed   sM   € Ü�H‰H�^¤Z°Ó%5Ó6ˆØˆ9Ü˜OÓ,Ð,ØŸ(™(›*‰ˆ�Ø�TŠ>ØˆNä˜7Ó#Ð#r   N)r    r!   r"   rB   rL   r#   r   r   r=   r=   `   s   „ òó$r   r=   c                   ó0   — e Zd Zej                  d„ «       Zy)ÚGeneratorCapClientc              #   óò  K  — t        j                  d«       t        t        j                  «       «      }t        j                  d«       |j	                  d| j
                  f«      –— |j                  t        |dz   «      «       t        j                  d«       |j                  d«      –—}t        j                  d«       |j                  «        t        j                  | j                  |«      «      ‚­w)NÚ
capitalizeÚ
connectingz	127.0.0.1ú
Úreadingr0   Ú	returning)ÚloggingÚdebugr   ÚsocketÚconnectrA   r3   r   r1   r4   r
   ÚReturnrL   )r   Úrequest_datar5   r7   s       r   rP   zGeneratorCapClient.capitalizep   sª   è ø€ ä�‰�lÔ#Üœ&Ÿ-™-›/Ó*ˆÜ�‰�lÔ#Ø�n‰n˜k¨4¯9©9Ð5Ó6Ò6Ø�‰”T˜,¨Ñ-Ó.Ô/Ü�‰�iÔ Ø×&Ñ& uÓ-Ñ-ˆÜ�‰�kÔ"Ø�‰ŒÜ�j‰j˜×.Ñ.¨tÓ4Ó5Ð5ùs   ‚C5C7N)r    r!   r"   r
   r9   rP   r#   r   r   rN   rN   o   s   „ Ø‡]�]ñ
6ó ñ
6r   rN   c                   ó@   ‡ — e Zd Zˆ fd„Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zˆ xZ	S )ÚGeneratorCapClientTestc                 ó´   •— t         ‰| �  «        t        «       | _        t	        «       \  }}| j                  j                  |g«       t        |¬«      | _        y )Nr@   )ÚsuperÚsetUpr.   Úserverr   Úadd_socketsrN   Úclient)r   ÚsockrA   Ú	__class__s      €r   r_   zGeneratorCapClientTest.setUp   sA   ø€ Ü‰‰ŒÜ“kˆŒÜ%Ó'‰
ˆˆdØ�‰×Ñ  Ô'Ü(¨dÔ3ˆ�r   c                 óV   •— | j                   j                  «        t        ‰| �  «        y r?   )r`   Ústopr^   ÚtearDown)r   rd   s    €r   rg   zGeneratorCapClientTest.tearDown†   s   ø€ Ø�‰×ÑÔÜ‰ÑÕr   c                 óæ   — | j                   j                  d«      }| j                  j                  || j                  «       | j                  «        | j                  |j                  «       d«       y ©NÚhelloÚHELLO)rb   rP   Úio_loopÚ
add_futurerf   Úwaitr   r   ©r   Úfutures     r   Útest_futurez"GeneratorCapClientTest.test_futureŠ   sM   € Ø—‘×'Ñ'¨Ó0ˆØ�‰×Ñ ¨¯	©	Ô2Ø�	‰	ŒØ×Ñ˜Ÿ™›¨'Õ2r   c                 óè   — | j                   j                  d«      }| j                  j                  || j                  «       | j                  «        | j                  t        d|j                  «       y )Nrk   úalready capitalized)	rb   rP   rl   rm   rf   rn   ÚassertRaisesRegexr;   r   ro   s     r   Útest_future_errorz(GeneratorCapClientTest.test_future_error�   sN   € Ø—‘×'Ñ'¨Ó0ˆØ�‰×Ñ ¨¯	©	Ô2Ø�	‰	ŒØ×ÑœxÐ)>ÀÇÁÕNr   c                 ól   ‡ — t         j                  ˆ fd„«       }‰ j                  j                  |«       y )Nc               3   ól   •K  — ‰j                   j                  d«      –—} ‰j                  | d«       y ­wri   )rb   rP   r   )r   r   s    €r   Úfz0GeneratorCapClientTest.test_generator.<locals>.f—   s.   øè ø€ àŸ;™;×1Ñ1°'Ó:Ñ:ˆFØ×Ñ˜V WÕ-ùs   ƒ14©r
   r9   rl   Úrun_sync©r   rx   s   ` r   Útest_generatorz%GeneratorCapClientTest.test_generator–   s-   ø€ Ü	�‰ó	.ó 
ð	.ð 	�‰×Ñ˜aÕ r   c                 ól   ‡ — t         j                  ˆ fd„«       }‰ j                  j                  |«       y )Nc               3   óž   •K  — ‰ j                  t        d«      5  ‰ j                  j                  d«      –— d d d «       y # 1 sw Y   y xY w­w)Nrs   rk   )rt   r;   rb   rP   ©r   s   €r   rx   z6GeneratorCapClientTest.test_generator_error.<locals>.fŸ   sA   øè ø€ à×'Ñ'¬Ð2GÓHñ 6Ø—k‘k×,Ñ,¨WÓ5Ò5÷6÷ 6ñ 6üs   ƒAšA¸	AÁA
ÁAry   r{   s   ` r   Útest_generator_errorz+GeneratorCapClientTest.test_generator_errorž   s-   ø€ Ü	�‰ó	6ó 
ð	6ð 	�‰×Ñ˜aÕ r   )
r    r!   r"   r_   rg   rq   ru   r|   r€   Ú__classcell__)rd   s   @r   r\   r\   ~   s"   ø„ ô4ôò3òOò!ö!r   r\   c                   óL   — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zy)ÚRunOnExecutorTestc              #   óv   K  —  G d„ d«      } |«       }|j                  «       –—}| j                  |d«       y ­w)Nc                   ó"   — e Zd Zd„ Zed„ «       Zy)ú1RunOnExecutorTest.test_no_calling.<locals>.Objectc                 óL   — t         j                  j                  d«      | _        y ©Né   ©r   ÚthreadÚThreadPoolExecutorÚexecutorr   s    r   rB   z:RunOnExecutorTest.test_no_calling.<locals>.Object.__init__«   ó   € Ü '§¡× AÑ AÀ!Ó D�•r   c                  ó   — yr   r#   r   s    r   rx   z3RunOnExecutorTest.test_no_calling.<locals>.Object.f®   ó   € àr   N©r    r!   r"   rB   r   rx   r#   r   r   ÚObjectr†   ª   s   „ òEð ñó ñr   r’   r   ©rx   r   ©r   r’   ÚoÚanswers       r   Útest_no_callingz!RunOnExecutorTest.test_no_calling¨   ó6   è ø€ ÷	ñ 	ñ ‹HˆØ—s‘s“u‘ˆØ×Ñ˜ Õ$ùó   ‚79c              #   óv   K  —  G d„ d«      } |«       }|j                  «       –—}| j                  |d«       y ­w)Nc                   ó,   — e Zd Zd„ Z e«       d„ «       Zy)ú8RunOnExecutorTest.test_call_with_no_args.<locals>.Objectc                 óL   — t         j                  j                  d«      | _        y rˆ   rŠ   r   s    r   rB   zARunOnExecutorTest.test_call_with_no_args.<locals>.Object.__init__¹   rŽ   r   c                  ó   — yr   r#   r   s    r   rx   z:RunOnExecutorTest.test_call_with_no_args.<locals>.Object.f¼   r�   r   Nr‘   r#   r   r   r’   rœ   ¸   ó   „ òEñ Óñó ñr   r’   r   r“   r”   s       r   Útest_call_with_no_argsz(RunOnExecutorTest.test_call_with_no_args¶   r˜   r™   c              #   óv   K  —  G d„ d«      } |«       }|j                  «       –—}| j                  |d«       y ­w)Nc                   ó0   — e Zd Zd„ Z ed¬«      d„ «       Zy)ú9RunOnExecutorTest.test_call_with_executor.<locals>.Objectc                 óL   — t         j                  j                  d«      | _        y rˆ   )r   r‹   rŒ   Ú_Object__executorr   s    r   rB   zBRunOnExecutorTest.test_call_with_executor.<locals>.Object.__init__Ç   s   € Ü")§.¡.×"CÑ"CÀAÓ"F�•r   r¥   )r�   c                  ó   — yr   r#   r   s    r   rx   z;RunOnExecutorTest.test_call_with_executor.<locals>.Object.fÊ   r�   r   Nr‘   r#   r   r   r’   r£   Æ   s"   „ òGñ Ð&9Ô:ñó ;ñr   r’   r   r“   r”   s       r   Útest_call_with_executorz)RunOnExecutorTest.test_call_with_executorÄ   r˜   r™   c              #   óp   ‡K  —  G d„ d«      } |«       Šˆfd„} |«       –—}| j                  |d«       y ­w)Nc                   ó,   — e Zd Zd„ Z e«       d„ «       Zy)ú2RunOnExecutorTest.test_async_await.<locals>.Objectc                 óL   — t         j                  j                  d«      | _        y rˆ   rŠ   r   s    r   rB   z;RunOnExecutorTest.test_async_await.<locals>.Object.__init__Õ   rŽ   r   c                  ó   — yr   r#   r   s    r   rx   z4RunOnExecutorTest.test_async_await.<locals>.Object.fØ   r�   r   Nr‘   r#   r   r   r’   rª   Ô   rŸ   r   r’   c               “   óD   •K  — ‰j                  «       ƒ d {  –—† } | S 7 Œ­wr?   )rx   )r–   r•   s    €r   rx   z-RunOnExecutorTest.test_async_await.<locals>.fÞ   s   øè ø€ ØŸ3™3›5—[ˆFØˆMð !ús   ƒ —˜ r   )r   )r   r’   rx   r   r•   s       @r   Útest_async_awaitz"RunOnExecutorTest.test_async_awaitÒ   s:   øè ø€ ÷	ñ 	ñ ‹Hˆô	ñ “s‘ˆØ×Ñ˜ Õ$ùs   ƒ36N)r    r!   r"   r   r—   r    r§   r®   r#   r   r   rƒ   rƒ   §   sP   „ Øñ%ó ð%ð ñ%ó ð%ð ñ%ó ð%ð ñ%ó ñ%r   rƒ   Ú__main__)#Ú
concurrentr   rU   rE   rW   ÚunittestÚtornado.concurrentr   r   r   r   Útornado.escaper   r	   Útornador
   Útornado.iostreamr   Útornado.tcpserverr   Útornado.testingr   r   r   r   r%   r.   rG   r;   r=   rN   r\   rƒ   r    Úmainr#   r   r   ú<module>r¹      s®   ðõ Û Û 	Û Û ÷ó ÷ ,Ý Ý %Ý 'ß EÑ Eô/�]ô /ô %�mô %ô:
�	ô 
ô	ˆyô 	÷$ñ $ô6˜ô 6ô&!˜]ô &!ôR<%˜ô <%ð~ ˆzÒØ€H‡M�M…Oð r   