
    g                     t   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jF                          yy)    )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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      Q/var/www/openai/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                   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_stream7   se     &&u--$4::<LL89 LLh567s   B BN)r   r    r!   r	   	coroutiner.   r"   r   r   r$   r$   6   s    ]] r   r$   c                       e Zd Zy)CapErrorN)r   r    r!   r"   r   r   r1   r1   C   s    r   r1   c                       e Zd Zd Zd Zy)BaseCapClientc                     || _         y Nport)r   r7   s     r   __init__zBaseCapClient.__init__H   s	    	r   c                     t        j                  dt        |            }|t        d      |j	                         \  }}|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   sM    HH^Z%569O,,((*T>N7##r   N)r   r    r!   r8   rB   r"   r   r   r3   r3   G   s    $r   r3   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
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#nnk499566T,-./i &&u--k"jj..t455s   C5C7N)r   r    r!   r	   r/   rF   r"   r   r   rD   rD   V   s    ]]
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                  j                  |g       | j                  |      | _        y )Nr6   )supersetUpr$   serverr   add_socketsclient_classclient)r   sockr7   	__class__s      r   rU   zClientTestMixin.setUph   sJ    k%'
d'''T'2r   c                 V    | j                   j                          t        |           y r5   )rV   stoprT   tearDown)r   r[   s    r   r^   zClientTestMixin.tearDowno   s    r   r   c                     | j                   j                  d      }| j                  j                  || j                         | j                          | j                  |j                         d       y NhelloHELLO)rY   rF   io_loop
add_futurer]   waitr   r   r   futures     r   test_futurezClientTestMixin.test_futures   sM    ''0		2		'2r   c                     | j                   j                  d      }| j                  j                  || j                         | j                          | j                  t        d|j                         y )Nrb   already capitalized)	rY   rF   rc   rd   r]   re   assertRaisesRegexr1   r   rf   s     r   test_future_errorz!ClientTestMixin.test_future_errory   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r`   )rY   rF   r   )r   r   s    r   fz)ClientTestMixin.test_generator.<locals>.f   s.     ;;11'::FVW-s   14r	   r/   rc   run_syncr   ro   s   ` r   test_generatorzClientTestMixin.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)Nrj   rb   )rk   r1   rY   rF   r   s   r   ro   z/ClientTestMixin.test_generator_error.<locals>.f   s9     ''2GHkk,,W55 IHHs   AA	AA
Arp   rr   s   ` r   test_generator_errorz$ClientTestMixin.test_generator_error   s-    		6 
	6 	a r   )r   r    r!   rX   rU   r^   typingAnyrh   rl   rs   rw   __classcell__)r[   s   @r   rR   rR   e   sT    L33&** 3O

 O!VZZ !!6:: !r   rR   c                       e Zd ZeZy)GeneratorClientTestN)r   r    r!   rD   rX   r"   r   r   r|   r|      s    %Lr   r|   c                   L    e Zd Zed        Zed        Zed        Zed        Zy)RunOnExecutorTestc              #      K    G d dt               } |       }|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executorrv   s    r   r8   z:RunOnExecutorTest.test_no_calling.<locals>.Object.__init__        ' A A! Dr   c                      yr   r"   rv   s    r   ro   z3RunOnExecutorTest.test_no_calling.<locals>.Object.f       r   Nr   r    r!   r8   r   ro   r"   r   r   Objectr      s    E  r   r   r   objectro   r   r   r   oanswers       r   test_no_callingz!RunOnExecutorTest.test_no_calling   8     	V 	 Hssu$   <>c              #      K    G d dt               } |       }|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   rv   s    r   r8   zARunOnExecutorTest.test_call_with_no_args.<locals>.Object.__init__   r   r   c                      yr   r"   rv   s    r   ro   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              #      K    G d dt               } |       }|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__executorrv   s    r   r8   zBRunOnExecutorTest.test_call_with_executor.<locals>.Object.__init__   s    ").."C"CA"Fr   r   )r   c                      yr   r"   rv   s    r   ro   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              #   z   K    G d dt               } |       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   rv   s    r   r8   z;RunOnExecutorTest.test_async_await.<locals>.Object.__init__   r   r   c                      y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                  D   K   j                          d {   } | S 7 wr5   )ro   )r   r   s    r   ro   z-RunOnExecutorTest.test_async_await.<locals>.f   s     335[FM !s     r   )r   r   )r   r   ro   r   r   s       @r   test_async_awaitz"RunOnExecutorTest.test_async_await   s<     	V 	 H	 s$s   8;N)r   r    r!   r   r   r   r   r   r"   r   r   r~   r~      sP    % % % % % % % %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/] /(
	 
	y 	$F $6 6(!f (!V&/= &<% <%~ zHMMO r   