
    h                        S SK r S SKrS SKrS SKrS SKrS SKJrJr  S SK	J
r
  S SKJrJr  S SKJr  S SKr\S\S\R"                  4   S\\R$                  SS4   4S	 j5       r\R(                  R+                  \R(                  R-                  \5      S
5      r\" \S5       r\R7                  5       rSSS5         " S S\
5      rSS jr " S S\R"                  5      rSS jr g! , (       d  f       N9= f)    N)closingcontextmanager)SimpleHTTPRequestHandler)Callable	Generator)urlopenhandler.returnc              #      #    [         R                  " SU 5      n[        R                  " UR                  SS0S9nSUl         UR                  5         Uv   UR                  5         g ! UR                  5         f = f7f)N)z	127.0.0.1r   poll_intervalg{Gz?)targetkwargsT)socketserver	TCPServer	threadingThreadserve_foreverdaemonstartshutdown)r	   httpdthreads      T/var/www/html/env/lib/python3.13/site-packages/h11/tests/test_against_stdlib_http.pysocket_serverr      sj      ""#3W=E""OT+BF FMs   A A=A( A=(A::A=zdata/test-filerbc                   &    \ rS rSrS\S\4S jrSrg)SingleMindedRequestHandler#   pathr
   c                     [         $ )N)test_file_path)selfr   s     r   translate_path)SingleMindedRequestHandler.translate_path$   s         N)__name__
__module____qualname____firstlineno__strr#   __static_attributes__r&   r%   r   r   r   #   s    3 3 r%   r   c                     [        [        5       n [        [        R                  " U R
                  5      5       n[        R                  " [        R                  5      nUR                  UR                  [        R                  " SSS/S95      5        UR                  UR                  [        R                  " 5       5      5        [        5       n UR                  5       n[        U5        U[        R                   L a"  UR#                  UR%                  S5      5        MQ  ['        U5      [        R(                  L a  UR*                  S:X  d   e['        U5      [        R,                  L a  X4R.                  -  n['        U5      [        R                  L a  OM  [1        U5      [2        :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NGETz/foo)Host	localhostmethodr   headers
      )r   r   r   socketcreate_connectionserver_addressh11
ConnectionCLIENTsendallsendRequestEndOfMessage	bytearray
next_eventprint	NEED_DATAreceive_datarecvtypeResponsestatus_codeDatadatabytestest_file_data)r   scrJ   events        r   test_h11_as_clientrP   (   sV   	1	2eV--e.B.BCDszz*AIIKK$V>S=T IIaffS--/01;DeCMM) NN166":.;#,,. ,,333;#((*JJ&D;#"2"22  ;.0007 E 
3	2DD 
3	2s#   *GE4G /G 
G	
G
Gc                       \ rS rSrSS jrSrg)H11RequestHandlerH   Nc                 ,   [        U R                  5       n[        R                  " [        R                  5      nS n UR                  5       nU[        R                  L a"  UR                  UR                  S5      5        MF  [        U5      [        R                  L a  Un[        U5      [        R                  L a  OM  Uc   e[        R                  " UR                  R                  S5      UR                   R                  S5      UR"                   VVs0 s H&  u  pVUR                  S5      UR                  S5      _M(     snnS.5      nUR%                  UR'                  [        R(                  " S/ S95      5        UR%                  UR'                  [        R*                  " UR-                  S5      S95      5        UR%                  UR'                  [        R                  " 5       5      5        S S S 5        g s  snnf ! , (       d  f       g = f)Nr4   asciir1   r5   )rH   r3   )rJ   )r   requestr9   r:   SERVERrA   rC   rD   rE   rF   r>   r?   jsondumpsr2   decoder   r3   r<   r=   rG   rI   encode)r"   rM   rN   rV   rO   namevalueinfos           r   handleH11RequestHandler.handleI   s   T\\"aszz*AGCMM) NN166":.;#++-#G;#"2"22  &&&::%nn33G<%nn33G< .5__ -<MT G,ell7.CC-< 	D IIaffS\\c2FGHIIaffSXX4;;w+?@ABIIaffS--/017 #"& ' #"s   DH-G?B1H?H
Hr&   r
   N)r'   r(   r)   r*   r_   r,   r&   r%   r   rR   rR   H   s    2r%   rR   c                     [        [        5       n U R                  u  pSR                  X5      n[	        [        U5      5       nUR                  5       S:X  d   eUR                  5       nS S S 5        S S S 5        [        R                  " WR                  S5      5      n[        U5        US   S:X  d   eUS   S:X  d   eSUS	   S
   ;   d   eg ! , (       d  f       Nk= f! , (       d  f       Nt= f)Nzhttp://{}:{}/some-pathr5   rU   r2   r.   r   z
/some-pathurllibr3   z
user-agent)r   rR   r8   formatr   r   getcodereadrX   loadsrZ   rB   )r   hostporturlfrJ   r^   s          r   test_h11_as_serverrl   h   s    	(	)U))
&--d9WS\"a99;#%%%668D # 
* ::dkk'*+D	$K>U""">\)))tI|4444 #" 
*	)s#   4C!'C+C!
C	C!!
C/ra   )!rX   os.pathosr6   r   r   
contextlibr   r   http.serverr   typingr   r   urllib.requestr   r9   BaseRequestHandlerr   r   r   joindirname__file__r!   openrk   rf   rL   r   rP   rR   rl   r&   r%   r   <module>rx      s         . 0 & " 
 c<:::;|%%tT12  bggooh79IJ	.$1VVXN  !9 
1@277 2@5S  s    C$$
C2