
    MhN                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ  G d d          Z G d d	ee	          Z G d
 dee	          ZdS )    N)	validator)
RuleRouter)AsyncHTTPTestCasegen_test)WSGIContainerc                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )WSGIAppMixinc                     t                      N)NotImplementedErrorselfs    V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tornado/test/wsgi_test.pyget_executorzWSGIAppMixin.get_executor   s    !###    c                     |                                  t          j        dd          | _        fd}t	          d || j                  fd || j                  fd || j                  fg          S )N   g333333?)timeoutc                 @    t          t          |                     S )N)executor)r   r   )appr   s    r   make_containerz,WSGIAppMixin.get_app.<locals>.make_container   s     3(CC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_appzWSGIAppMixin.get_app   s    $$&& !(C888	D 	D 	D 	D 	D NN4+?@@A^^D,ABBC%~~d6U'V'VW
 
 	
r   c                 (    d}dg} |||           d S )Nz200 OK)zContent-Typez
text/plain )r   start_responsestatusresponse_headerss       r   respond_plainzWSGIAppMixin.respond_plain"   s)    :;v/00000r   c                 2    |                      |           dgS )N   Hello world!)r(   )r   environr%   s      r   r   zWSGIAppMixin.simple_wsgi_app'   s    >***  r   c                     |                      |           	 | j                                        }d|z  gS # t          j        $ r dgcY S w xY w)Ns   ok %d   broken barrierr(   r   waitr   BrokenBarrierErrorr   r+   r%   ns       r   r    zWSGIAppMixin.barrier_wsgi_app+   sk    >***	"!!##A qL>! + 	' 	' 	'%&&&&	's   6 A
Ac              #      K   |                      |           dV  	 | j                                        }d|z  V  d S # t          j        $ r dV  Y d S w xY w)Ns   ok s   %dr-   r.   r1   s       r   r!   z'WSGIAppMixin.streaming_barrier_wsgi_app4   s      >***	!!##A !)OOOOO + 	$ 	$ 	$#######	$s   ? AAN)	__name__
__module____qualname__r   r"   r(   r   r    r!   r$   r   r   r	   r	      sn        $ $ $
 
 
"1 1 1
! ! !" " "    r   r	   c                   F    e Zd Zd Zd Zed             Zed             ZdS )WSGIContainerDummyExecutorTestc                     d S r   r$   r   s    r   r   z+WSGIContainerDummyExecutorTest.get_executor@   s    tr   c                 f    |                      d          }|                     |j        d           d S Nr   r*   fetchassertEqualbodyr   responses     r   test_simplez*WSGIContainerDummyExecutorTest.test_simpleC   1    ::i((88888r   c                 ^  K   | j                                          t          j        | j                            |                     d                    | j                            |                     d                               d {V }|D ]}|                     |j        d           d S )Nr   r-   	r   resetasynciogatherhttp_clientr=   get_urlr>   r?   r   respsresps      r   test_concurrent_barrierz6WSGIContainerDummyExecutorTest.test_concurrent_barrierG   s      n""4<<
#;#;<<""4<<
#;#;<<
 
 
 
 
 
 
 
  	; 	;DTY(9::::	; 	;r   c                 ^  K   | j                                          t          j        | j                            |                     d                    | j                            |                     d                               d {V }|D ]}|                     |j        d           d S )Nr   s   ok broken barrierrE   rK   s      r   !test_concurrent_streaming_barrierz@WSGIContainerDummyExecutorTest.test_concurrent_streaming_barrierQ   s      n""4<<0D#E#EFF""4<<0D#E#EFF
 
 
 
 
 
 
 
  	> 	>DTY(<====	> 	>r   Nr4   r5   r6   r   rB   r   rN   rP   r$   r   r   r8   r8   ?   sh          9 9 9 ; ; X; > > X> > >r   r8   c                   F    e Zd Zd Zd Zed             Zed             ZdS )WSGIContainerThreadPoolTestc                 >    t           j                                        S r   )
concurrentfuturesThreadPoolExecutorr   s    r   r   z(WSGIContainerThreadPoolTest.get_executor]   s    !44666r   c                 f    |                      d          }|                     |j        d           d S r;   r<   r@   s     r   rB   z'WSGIContainerThreadPoolTest.test_simple`   rC   r   c                 |  K   | j                                          t          j        | j                            |                     d                    | j                            |                     d                               d {V }|                     ddgt          d |D                                  d S )Nr      ok 0   ok 1c                     g | ]	}|j         
S r$   r?   .0rM   s     r   
<listcomp>zGWSGIContainerThreadPoolTest.test_concurrent_barrier.<locals>.<listcomp>k       4Q4Q4Q4TY4Q4Q4Qr   	r   rF   rG   rH   rI   r=   rJ   r>   sortedr   rL   s     r   rN   z3WSGIContainerThreadPoolTest.test_concurrent_barrierd   s      n""4<<
#;#;<<""4<<
#;#;<<
 
 
 
 
 
 
 
 	'7+V4Q4Q54Q4Q4Q-R-RSSSSSr   c                 |  K   | j                                          t          j        | j                            |                     d                    | j                            |                     d                               d {V }|                     ddgt          d |D                                  d S )Nr   rZ   r[   c                     g | ]	}|j         
S r$   r]   r^   s     r   r`   zQWSGIContainerThreadPoolTest.test_concurrent_streaming_barrier.<locals>.<listcomp>t   ra   r   rb   rd   s     r   rP   z=WSGIContainerThreadPoolTest.test_concurrent_streaming_barrierm   s      n""4<<0D#E#EFF""4<<0D#E#EFF
 
 
 
 
 
 
 
 	'7+V4Q4Q54Q4Q4Q-R-RSSSSSr   NrQ   r$   r   r   rS   rS   \   sp        7 7 79 9 9 T T XT T T XT T Tr   rS   )rG   concurrent.futuresrU   r   wsgiref.validater   tornado.routingr   tornado.testingr   r   tornado.wsgir   r	   r8   rS   r$   r   r   <module>rl      s            & & & & & & & & & & & & 7 7 7 7 7 7 7 7 & & & & & &0 0 0 0 0 0 0 0f> > > > >\3D > > >:T T T T T,0A T T T T Tr   