
    R?gN                         S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
  S SKJr   " S S5      r " S S	\\	5      r " S
 S\\	5      rg)    N)	validator)
RuleRouter)AsyncHTTPTestCasegen_test)WSGIContainerc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
WSGIAppMixin   c                     [        5       eN)NotImplementedErrorselfs    8/usr/lib/python3/dist-packages/tornado/test/wsgi_test.pyget_executorWSGIAppMixin.get_executor   s    !##    c                    ^ U R                  5       m[        R                  " SSS9U l        U4S jn[	        SU" U R
                  5      4SU" U R                  5      4SU" U R                  5      4/5      $ )N   g333333?)timeoutc                 *   > [        [        U 5      TS9$ )N)executor)r   r   )appr   s    r   make_container,WSGIAppMixin.get_app.<locals>.make_container   s     3(CCr   /simple/barrier/streaming_barrier)r   	threadingBarrierbarrierr   simple_wsgi_appbarrier_wsgi_appstreaming_barrier_wsgi_app)r   r   r   s     @r   get_appWSGIAppMixin.get_app   sz    $$& !((C8	D N4+?+?@A^D,A,ABC%~d6U6U'VW
 	
r   c                     SnS/nU" X#5        g )Nz200 OK)zContent-Typez
text/plain )r   start_responsestatusresponse_headerss       r   respond_plainWSGIAppMixin.respond_plain"   s    :;v0r   c                 *    U R                  U5        S/$ )N   Hello world!)r,   )r   environr)   s      r   r"   WSGIAppMixin.simple_wsgi_app'   s    >*  r   c                     U R                  U5         U R                  R                  5       nSU-  /$ ! [        R                   a    S/s $ f = f)Ns   ok %d   broken barrierr,   r!   waitr   BrokenBarrierErrorr   r0   r)   ns       r   r#   WSGIAppMixin.barrier_wsgi_app+   sU    >*	"!!#A qL>! ++ 	'%&&	's   3 AAc              #      #    U R                  U5        Sv    U R                  R                  5       nSU-  v   g ! [        R                   a    Sv    g f = f7f)Ns   ok s   %dr3   r4   r7   s       r   r$   'WSGIAppMixin.streaming_barrier_wsgi_app4   sV     >*	!!#A !)O ++ 	$##	$s%   A; AAAAA)r!   N)__name__
__module____qualname____firstlineno__r   r%   r,   r"   r#   r$   __static_attributes__r(   r   r   r	   r	      s     $
"1
!"r   r	   c                   @    \ rS rSrS rS r\S 5       r\S 5       rSr	g)WSGIContainerDummyExecutorTest?   c                     g r   r(   r   s    r   r   +WSGIContainerDummyExecutorTest.get_executor@   s    r   c                 ^    U R                  S5      nU R                  UR                  S5        g Nr   r/   fetchassertEqualbodyr   responses     r   test_simple*WSGIContainerDummyExecutorTest.test_simpleC   $    ::i(8r   c                 l  #    U R                   R                  5         [        R                  " U R                  R                  U R                  S5      5      U R                  R                  U R                  S5      5      5      I S h  vN nU H  nU R                  UR                  S5        M!     g  N*7f)Nr   r3   	r!   resetasynciogatherhttp_clientrI   get_urlrJ   rK   r   respsresps      r   test_concurrent_barrier6WSGIContainerDummyExecutorTest.test_concurrent_barrierG   s     nn""4<<
#;<""4<<
#;<
 
 DTYY(9: 	
   BB4B2+B4c                 l  #    U R                   R                  5         [        R                  " U R                  R                  U R                  S5      5      U R                  R                  U R                  S5      5      5      I S h  vN nU H  nU R                  UR                  S5        M!     g  N*7f)Nr   s   ok broken barrierrR   rX   s      r   !test_concurrent_streaming_barrier@WSGIContainerDummyExecutorTest.test_concurrent_streaming_barrierQ   s     nn""4<<0D#EF""4<<0D#EF
 
 DTYY(<= 	
r]   r(   N
r<   r=   r>   r?   r   rN   r   r[   r_   r@   r(   r   r   rB   rB   ?   s4    9 ; ; > >r   rB   c                   @    \ rS rSrS rS r\S 5       r\S 5       rSr	g)WSGIContainerThreadPoolTest\   c                 >    [         R                  R                  5       $ r   )
concurrentfuturesThreadPoolExecutorr   s    r   r   (WSGIContainerThreadPoolTest.get_executor]   s    !!4466r   c                 ^    U R                  S5      nU R                  UR                  S5        g rG   rH   rL   s     r   rN   'WSGIContainerThreadPoolTest.test_simple`   rP   r   c           	        #    U R                   R                  5         [        R                  " U R                  R                  U R                  S5      5      U R                  R                  U R                  S5      5      5      I S h  vN nU R                  SS/[        U Vs/ s H  o"R                  PM     sn5      5        g  N<s  snf 7f)Nr      ok 0   ok 1
r!   rS   rT   rU   rV   rI   rW   rJ   sortedrK   rX   s      r   r[   3WSGIContainerThreadPoolTest.test_concurrent_barrierd   s     nn""4<<
#;<""4<<
#;<
 
 	'7+V54Q54YY54Q-RS	
 5R$   BCCC#C8CCc           	        #    U R                   R                  5         [        R                  " U R                  R                  U R                  S5      5      U R                  R                  U R                  S5      5      5      I S h  vN nU R                  SS/[        U Vs/ s H  o"R                  PM     sn5      5        g  N<s  snf 7f)Nr   rm   rn   ro   rX   s      r   r_   =WSGIContainerThreadPoolTest.test_concurrent_streaming_barrierm   s     nn""4<<0D#EF""4<<0D#EF
 
 	'7+V54Q54YY54Q-RS	
 5Rrr   r(   Nra   r(   r   r   rc   rc   \   s8    79 T T T Tr   rc   )rT   concurrent.futuresrf   r   wsgiref.validater   tornado.routingr   tornado.testingr   r   tornado.wsgir   r	   rB   rc   r(   r   r   <module>rz      sE       & & 7 &0 0f>\3D >:T,0A Tr   