
    [4%e                        d dl mZ d dl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
 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e          Z G d de          Z G d dee          Z  G d de          Z!e"dk    r ej#                     dS dS )    )futuresN)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dS )MiscFutureTestc                    t                      }t          |d           |                     |                                d           |                     |                                           t                      }|                                 |                                }t          |d           |                     |                                |           |s*|                     |                                d           d S d S N*   )r   r   assertEqualresultassertFalse	cancelledcancel)selffutis_cancelleds      <lib/python3.11/site-packages/tornado/test/concurrent_test.py'test_future_set_result_unless_cancelledz6MiscFutureTest.test_future_set_result_unless_cancelled#   s    hh*3333r***)))hh

}}*3333,777 	/SZZ\\2.....	/ 	/    N)__name__
__module____qualname__r    r   r   r   r   "   s#        / / / / /r   r   c                   .    e Zd Zej        d             ZdS )	CapServerc              #   H  K   |                     d          V }t          |          }||                                k    r|                    d           n7|                    t	          d|                                z                       |                                 d S )N   
s   error	already capitalized
zok	%s)
read_untilr   upperwriter   close)r   streamaddressdatas       r   handle_streamzCapServer.handle_stream7   s      &&u----$4::<<LL89999 LLh566777r   N)r   r    r!   r	   	coroutiner.   r"   r   r   r$   r$   6   s/        ]  ]  r   r$   c                       e Zd ZdS )CapErrorN)r   r    r!   r"   r   r   r1   r1   C   s        Dr   r1   c                       e Zd Zd Zd ZdS )BaseCapClientc                     || _         d S Nport)r   r7   s     r   __init__zBaseCapClient.__init__H   s    			r   c                     t          j        dt          |                    }|t          d          |                                \  }}|dk    r|S t          |          )Nz
(.*)	(.*)
zdid not matchok)rematchr   	Exceptiongroupsr1   )r   r-   mstatusmessages        r   process_responsezBaseCapClient.process_responseK   s[    H^Z%5%5669O,,,((**T>>N7###r   N)r   r    r!   r8   rB   r"   r   r   r3   r3   G   s2          $ $ $ $ $r   r3   c                   .    e Zd Zej        d             ZdS )GeneratorCapClientc              #     K   t          j        d           t          t          j                              }t          j        d           |                    d| j        f          V  |                    t          |dz                        t          j        d           |                    d          V }t          j        d           |	                                 t          j        |                     |                    )N
capitalize
connectingz	127.0.0.1
readingr&   	returning)loggingdebugr
   socketconnectr7   r)   r   r'   r*   r	   ReturnrB   )r   request_datar+   r-   s       r   rF   zGeneratorCapClient.capitalizeW   s      l###&-//**l###nnk49566666T,-..///i   &&u----k"""j..t44555r   N)r   r    r!   r	   r/   rF   r"   r   r   rD   rD   V   s/        ]
6 
6 ]
6 
6 
6r   rD   c                        e Zd ZdZ fdZ fdZdej        fdZdej        fdZ	dej        fdZ
dej        fdZ xZS )	ClientTestMixinNc                     t                                                       t                      | _        t	                      \  }}| j                            |g           |                     |          | _        d S )Nr6   )supersetUpr$   serverr   add_socketsclient_classclient)r   sockr7   	__class__s      r   rU   zClientTestMixin.setUph   sb    kk%''
d'''''T'22r   c                 z    | j                                          t                                                       d S r5   )rV   stoprT   tearDown)r   r[   s    r   r^   zClientTestMixin.tearDowno   s3    r   r   c                     | j                             d          }| j                            || j                   |                                  |                     |                                d           d S NhelloHELLO)rY   rF   io_loop
add_futurer]   waitr   r   r   futures     r   test_futurezClientTestMixin.test_futures   sb    ''00	222		'22222r   c                     | j                             d          }| j                            || j                   |                                  |                     t          d|j                   d S )Nrb   already capitalized)	rY   rF   rc   rd   r]   re   assertRaisesRegexr1   r   rf   s     r   test_future_errorz!ClientTestMixin.test_future_errory   s_    ''00	222		x)>NNNNNr   c                 j     t           j         fd            } j                            |           d S )Nc               3   p   K   j                             d          V }                     | d           d S r`   )rY   rF   r   )r   r   s    r   fz)ClientTestMixin.test_generator.<locals>.f   s>      ;11'::::FVW-----r   r	   r/   rc   run_syncr   ro   s   ` r   test_generatorzClientTestMixin.test_generator   sF    		. 	. 	. 	. 
	. 	a     r   c                 j     t           j         fd            } j                            |           d S )Nc               3      K                         t          d          5   j                            d          V  d d d            d S # 1 swxY w Y   d S )Nrj   rb   )rk   r1   rY   rF   r   s   r   ro   z/ClientTestMixin.test_generator_error.<locals>.f   s      ''2GHH 6 6k,,W555556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   A		AArp   rr   s   ` r   test_generator_errorz$ClientTestMixin.test_generator_error   sF    		6 	6 	6 	6 
	6 	a     r   )r   r    r!   rX   rU   r^   typingAnyrh   rl   rs   rw   __classcell__)r[   s   @r   rR   rR   e   s        L3 3 3 3 3    3&* 3 3 3 3O
 O O O O!VZ ! ! ! !!6: ! ! ! ! ! ! ! !r   rR   c                       e Zd ZeZdS )GeneratorClientTestN)r   r    r!   rD   rX   r"   r   r   r|   r|      s        %LLLr   r|   c                   f    e Zd Zed             Zed             Zed             Zed             ZdS )RunOnExecutorTestc              #      K    G d dt                     } |            }|                                V }|                     |d           d S )Nc                   *    e Zd Zd Zed             ZdS )1RunOnExecutorTest.test_no_calling.<locals>.Objectc                 N    t           j                            d          | _        d S N   r   threadThreadPoolExecutorexecutorrv   s    r   r8   z:RunOnExecutorTest.test_no_calling.<locals>.Object.__init__        ' A A! D Dr   c                     dS r   r"   rv   s    r   ro   z3RunOnExecutorTest.test_no_calling.<locals>.Object.f       rr   Nr   r    r!   r8   r   ro   r"   r   r   Objectr      sA        E E E   _  r   r   r   objectro   r   r   r   oanswers       r   test_no_callingz!RunOnExecutorTest.test_no_calling   j      	 	 	 	 	V 	 	 	 FHHssuu$$$$$r   c              #      K    G d dt                     } |            }|                                V }|                     |d           d S )Nc                   :    e Zd Zd Z e            d             ZdS )8RunOnExecutorTest.test_call_with_no_args.<locals>.Objectc                 N    t           j                            d          | _        d S r   r   rv   s    r   r8   zARunOnExecutorTest.test_call_with_no_args.<locals>.Object.__init__   r   r   c                     dS r   r"   rv   s    r   ro   z:RunOnExecutorTest.test_call_with_no_args.<locals>.Object.f   r   r   Nr   r"   r   r   r   r      J        E E E _    r   r   r   r   r   s       r   test_call_with_no_argsz(RunOnExecutorTest.test_call_with_no_args   r   r   c              #      K    G d dt                     } |            }|                                V }|                     |d           d S )Nc                   >    e Zd Zd Z ed          d             ZdS )9RunOnExecutorTest.test_call_with_executor.<locals>.Objectc                 N    t           j                            d          | _        d S r   )r   r   r   _Object__executorrv   s    r   r8   zBRunOnExecutorTest.test_call_with_executor.<locals>.Object.__init__   s    ")."C"CA"F"Fr   r   )r   c                     dS r   r"   rv   s    r   ro   z;RunOnExecutorTest.test_call_with_executor.<locals>.Object.f   r   r   Nr   r"   r   r   r   r      sP        G G G _&9:::  ;:  r   r   r   r   r   s       r   test_call_with_executorz)RunOnExecutorTest.test_call_with_executor   r   r   c              #      K    G d dt                     } |            fd} |            V }|                     |d           d S )Nc                   :    e Zd Zd Z e            d             ZdS )2RunOnExecutorTest.test_async_await.<locals>.Objectc                 N    t           j                            d          | _        d S r   r   rv   s    r   r8   z;RunOnExecutorTest.test_async_await.<locals>.Object.__init__   r   r   c                     dS r   r"   rv   s    r   ro   z4RunOnExecutorTest.test_async_await.<locals>.Object.f   r   r   Nr   r"   r   r   r   r      r   r   r   c                  @   K                                     d {V } | S r5   )ro   )r   r   s    r   ro   z-RunOnExecutorTest.test_async_await.<locals>.f   s%      3355[[[[[[FMr   r   )r   r   )r   r   ro   r   r   s       @r   test_async_awaitz"RunOnExecutorTest.test_async_await   s      	 	 	 	 	V 	 	 	 FHH	 	 	 	 	 qss$$$$$r   N)r   r    r!   r   r   r   r   r   r"   r   r   r~   r~      s~        % % X% % % X% % % X% % % X% % %r   r~   __main__)$
concurrentr   rK   r;   rM   rx   unittesttornado.concurrentr   r   r   tornado.escaper   r   tornador	   tornado.iostreamr
   tornado.tcpserverr   tornado.testingr   r   r   r   r$   r=   r1   r   r3   rD   rR   r|   r~   r   mainr"   r   r   <module>r      s`          				            
 , + + + + + + +       % % % % % % ' ' ' ' ' ' E E E E E E E E E E/ / / / /] / / /(
 
 
 
 
	 
 
 
	 	 	 	 	y 	 	 	$ $ $ $ $F $ $ $6 6 6 6 6 6 6 6(! (! (! (! (!f (! (! (!V& & & & &/= & & &<% <% <% <% <% <% <% <%~ zHMOOOOO r   