
    /_i                     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      [/var/www/html/land_sniper/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SZZ\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$+NN$4"HS$T4 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::<LL89 LL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    HH^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#nnk499566T,-./i &&u--k"jj..t455s   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VW-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kk,,W556 6 6s   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ssu$   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"CA"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     335[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HMMO r   