
    R?g                     v   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr   " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\\5      r  " S S\5      r!\"S:X  a  \RF                  " 5         gg)    )futuresN)Futurerun_on_executor"future_set_result_unless_cancelled)utf8
to_unicode)gen)IOStream)	TCPServer)AsyncTestCasebind_unused_portgen_testc                       \ rS rSrS rSrg)MiscFutureTest"   c                    [        5       n[        US5        U R                  UR                  5       S5        U R	                  UR                  5       5        [        5       nUR                  5         UR                  5       n[        US5        U R                  UR                  5       U5        U(       d!  U R                  UR                  5       S5        g g N*   )r   r   assertEqualresultassertFalse	cancelledcancel)selffutis_cancelleds      >/usr/lib/python3/dist-packages/tornado/test/concurrent_test.py'test_future_set_result_unless_cancelled6MiscFutureTest.test_future_set_result_unless_cancelled#   s    h*33r*)h

}}*33,7SZZ\2.      N)__name__
__module____qualname____firstlineno__r   __static_attributes__r!   r    r   r   r   "   s    /r    r   c                   8    \ rS rSr\R
                  S 5       rSrg)	CapServer6   c              #     #    UR                  S5      v n[        U5      nX3R                  5       :X  a  UR                  S5        O+UR                  [	        SUR                  5       -  5      5        UR                  5         g 7f)N   
s   error	already capitalized
zok	%s)
read_untilr   upperwriter   close)r   streamaddressdatas       r   handle_streamCapServer.handle_stream7   sb     &&u--$::<LL89 LLh567s   B Br!   N)r"   r#   r$   r%   r	   	coroutiner3   r&   r!   r    r   r(   r(   6   s    ]] r    r(   c                       \ rS rSrSrg)CapErrorC   r!   N)r"   r#   r$   r%   r&   r!   r    r   r7   r7   C   s    r    r7   c                        \ rS rSrS rS rSrg)BaseCapClientG   c                     Xl         g Nport)r   r?   s     r   __init__BaseCapClient.__init__H   s    	r    c                     [         R                  " S[        U5      5      nUc  [        S5      eUR	                  5       u  p4US:X  a  U$ [        U5      e)Nz
(.*)	(.*)
zdid not matchok)rematchr   	Exceptiongroupsr7   )r   r2   mstatusmessages        r   process_responseBaseCapClient.process_responseK   sK    HH^Z%569O,,((*T>N7##r    r>   N)r"   r#   r$   r%   r@   rK   r&   r!   r    r   r:   r:   G   s    $r    r:   c                   8    \ rS rSr\R
                  S 5       rSrg)GeneratorCapClientV   c              #     #    [         R                  " S5        [        [        R                  " 5       5      n[         R                  " S5        UR	                  SU R
                  45      v   UR                  [        US-   5      5        [         R                  " S5        UR                  S5      v n[         R                  " S5        UR                  5         [        R                  " U R                  U5      5      e7f)N
capitalize
connectingz	127.0.0.1
readingr+   	returning)loggingdebugr
   socketconnectr?   r.   r   r,   r/   r	   ReturnrK   )r   request_datar0   r2   s       r   rQ   GeneratorCapClient.capitalizeW   s     l#&--/*l#nnk499566T,-./i &&u--k"jj..t455s   C;C=r!   N)r"   r#   r$   r%   r	   r5   rQ   r&   r!   r    r   rN   rN   V   s    ]]
6 
6r    rN   c                      ^  \ rS rSrSrU 4S jrU 4S jrS\R                  4S jr	S\R                  4S jr
S\R                  4S jrS\R                  4S	 jrS
rU =r$ )ClientTestMixine   Nc                    > [         TU ]  5         [        5       U l        [	        5       u  pU R                  R                  U/5        U R                  US9U l        g )Nr>   )supersetUpr(   serverr   add_socketsclient_classclient)r   sockr?   	__class__s      r   rb   ClientTestMixin.setUph   sH    k%'
'''T'2r    c                 V   > U R                   R                  5         [        TU ]  5         g r=   )rc   stopra   tearDown)r   rh   s    r   rl   ClientTestMixin.tearDowno   s    r    r   c                     U R                   R                  S5      nU R                  R                  XR                  5        U R                  5         U R                  UR                  5       S5        g NhelloHELLO)rf   rQ   io_loop
add_futurerk   waitr   r   r   futures     r   test_futureClientTestMixin.test_futures   sK    ''0		2		'2r    c                     U R                   R                  S5      nU R                  R                  XR                  5        U R                  5         U R                  [        SUR                  5        g )Nrq   already capitalized)	rf   rQ   rr   rs   rk   rt   assertRaisesRegexr7   r   ru   s     r   test_future_error!ClientTestMixin.test_future_errory   sL    ''0		2		x)>Nr    c                 n   ^  [         R                  U 4S j5       nT R                  R                  U5        g )Nc               3   l   >#    TR                   R                  S5      v n TR                  U S5        g 7fro   )rf   rQ   r   )r   r   s    r   f)ClientTestMixin.test_generator.<locals>.f   s-     ;;11'::FVW-s   14r	   r5   rr   run_syncr   r   s   ` r   test_generatorClientTestMixin.test_generator   s-    		. 
	. 	a r    c                 n   ^  [         R                  U 4S j5       nT R                  R                  U5        g )Nc               3      >#    T R                  [        S5         T R                  R                  S5      v   S S S 5        g ! , (       d  f       g = f7f)Nrz   rq   )r{   r7   rf   rQ   r   s   r   r   /ClientTestMixin.test_generator_error.<locals>.f   s8     ''2GHkk,,W55 IHHs   AA	A
AAr   r   s   ` r   test_generator_error$ClientTestMixin.test_generator_error   s-    		6 
	6 	a r    )rf   rc   )r"   r#   r$   r%   re   rb   rl   typingAnyrw   r|   r   r   r&   __classcell__)rh   s   @r   r^   r^   e   sY    L33&** 3O

 O!VZZ !!6:: ! !r    r^   c                       \ rS rSr\rSrg)GeneratorClientTest   r!   N)r"   r#   r$   r%   rN   re   r&   r!   r    r   r   r      s    %Lr    r   c                   T    \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       rSr	g)RunOnExecutorTest   c              #      #     " S S[         5      nU" 5       nUR                  5       v nU R                  US5        g 7f)Nc                   *    \ rS rSrS r\S 5       rSrg)1RunOnExecutorTest.test_no_calling.<locals>.Object   c                 L    [         R                  R                  S5      U l        g N   r   threadThreadPoolExecutorexecutorr   s    r   r@   :RunOnExecutorTest.test_no_calling.<locals>.Object.__init__        ' A A! Dr    c                     gr   r!   r   s    r   r   3RunOnExecutorTest.test_no_calling.<locals>.Object.f       r    r   Nr"   r#   r$   r%   r@   r   r   r&   r!   r    r   Objectr      s    E  r    r   r   objectr   r   r   r   oanswers       r   test_no_calling!RunOnExecutorTest.test_no_calling   7     	V 	 Hssu$   <>c              #      #     " S S[         5      nU" 5       nUR                  5       v nU R                  US5        g 7f)Nc                   4    \ rS rSrS r\" 5       S 5       rSrg)8RunOnExecutorTest.test_call_with_no_args.<locals>.Object   c                 L    [         R                  R                  S5      U l        g r   r   r   s    r   r@   ARunOnExecutorTest.test_call_with_no_args.<locals>.Object.__init__   r   r    c                     gr   r!   r   s    r   r   :RunOnExecutorTest.test_call_with_no_args.<locals>.Object.f   r   r    r   Nr   r!   r    r   r   r          E  r    r   r   r   r   s       r   test_call_with_no_args(RunOnExecutorTest.test_call_with_no_args   r   r   c              #      #     " S S[         5      nU" 5       nUR                  5       v nU R                  US5        g 7f)Nc                   2    \ rS rSrS r\" SS9S 5       rSrg)9RunOnExecutorTest.test_call_with_executor.<locals>.Object   c                 L    [         R                  R                  S5      U l        g r   )r   r   r   _Object__executorr   s    r   r@   BRunOnExecutorTest.test_call_with_executor.<locals>.Object.__init__   s    ").."C"CA"Fr    r   r   c                     gr   r!   r   s    r   r   ;RunOnExecutorTest.test_call_with_executor.<locals>.Object.f   r   r    )
__executorNr   r!   r    r   r   r      s"    G &9: ;r    r   r   r   r   s       r   test_call_with_executor)RunOnExecutorTest.test_call_with_executor   r   r   c              #   |   ^#     " S S[         5      nU" 5       mU4S jnU" 5       v nU R                  US5        g 7f)Nc                   4    \ rS rSrS r\" 5       S 5       rSrg)2RunOnExecutorTest.test_async_await.<locals>.Object   c                 L    [         R                  R                  S5      U l        g r   r   r   s    r   r@   ;RunOnExecutorTest.test_async_await.<locals>.Object.__init__   r   r    c                     gr   r!   r   s    r   r   4RunOnExecutorTest.test_async_await.<locals>.Object.f   r   r    r   Nr   r!   r    r   r   r      r   r    r   c                  D   >#    TR                  5       I S h  vN n U $  N7fr=   )r   )r   r   s    r   r   -RunOnExecutorTest.test_async_await.<locals>.f   s     335[FM !s     r   )r   r   )r   r   r   r   r   s       @r   test_async_await"RunOnExecutorTest.test_async_await   s;     	V 	 H	 s$s   9<r!   N)
r"   r#   r$   r%   r   r   r   r   r   r&   r!   r    r   r   r      sP    % % % % % % % %r    r   __main__)$
concurrentr   rV   rD   rX   r   unittesttornado.concurrentr   r   r   tornado.escaper   r   tornador	   tornado.iostreamr
   tornado.tcpserverr   tornado.testingr   r   r   r   r(   rF   r7   r   r:   rN   r^   r   r   r"   mainr!   r    r   <module>r      s      	    
 ,  % ' E E/] /(
	 
	y 	$F $6 6(!f (!V&/= &<% <%~ zMMO r    