
    ")f                        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 d dl	m
Z
 d dlmZmZ d dlmZ d dlZededej"                  f   deej$                  ddf   fd	       Zej(                  j+                  ej(                  j-                  e      d
      Z eed      5 Zej7                         Zddd        G d de
      ZddZ G d dej"                        ZddZ y# 1 sw Y   2xY w)    N)closingcontextmanager)SimpleHTTPRequestHandler)Callable	Generator)urlopenhandler.returnc              #      K   t        j                  d|       }t        j                  |j                  ddi      }d|_        	 |j                          | |j                          y # |j                          w xY ww)N)z	127.0.0.1r   poll_intervalg{Gz?)targetkwargsT)socketserver	TCPServer	threadingThreadserve_foreverdaemonstartshutdown)r	   httpdthreads      _/var/www/html/flask-app/venv/lib/python3.12/site-packages/h11/tests/test_against_stdlib_http.pysocket_serverr      sk      ""#3W=E""OT+BF FMs   AA>A) A>)A;;A>zdata/test-filerbc                       e Zd ZdedefdZy)SingleMindedRequestHandlerpathr
   c                     t         S )N)test_file_path)selfr   s     r   translate_pathz)SingleMindedRequestHandler.translate_path$   s        N)__name__
__module____qualname__strr"    r#   r   r   r   #   s    3 3 r#   r   c                     t        t              5 } t        t        j                  | j
                              5 }t        j                  t        j                        }|j                  |j                  t        j                  dddg                   |j                  |j                  t        j                                      t               }	 |j                         }t        |       |t        j                   u r!|j#                  |j%                  d             Ot'        |      t        j(                  u r|j*                  dk(  sJ t'        |      t        j,                  u r||j.                  z  }t'        |      t        j                  u rnt1        |      t2        k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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crF   events        r   test_h11_as_clientrL   (   sf   	1	2 1eV--e.B.BCD 	1szz*AIIKK$V>S=T IIaffS--/01;DeCMM) NN166":.;#,,. ,,33;#((*EJJ&D;#"2"22  ;.0007	11 1	1 	11 1s#   )GE-F8'G8G	=GGc                       e Zd ZddZy)H11RequestHandlerNc                    t        | j                        5 }t        j                  t        j                        }d }	 |j                         }|t        j                  u r!|j                  |j                  d             Dt        |      t        j                  u r|}t        |      t        j                  u rn}|J t        j                  |j                  j                  d      |j                   j                  d      |j"                  D ci c]&  \  }}|j                  d      |j                  d      ( c}}d      }|j%                  |j'                  t        j(                  dg                    |j%                  |j'                  t        j*                  |j-                  d                         |j%                  |j'                  t        j                                      d d d        y c c}}w # 1 sw Y   y xY w)Nr0   asciir-   r1   )rD   r/   )rF   )r   requestr5   r6   SERVERr=   r?   r@   rA   rB   r:   r;   jsondumpsr.   decoder   r/   r8   r9   rC   rE   encode)r!   rI   rJ   rQ   rK   namevalueinfos           r   handlezH11RequestHandler.handleI   s   T\\" 	2aszz*AGCMM) NN166":.;#++-#G;#"2"22  &&::%nn33G<%nn33G< .5__ )T5 G,ell7.CC 	D IIaffS\\c2FGHIIaffSXX4;;w+?@ABIIaffS--/017	2 	2& '	2 	2s   C:G>+G8;B4G>8G>>Hr
   N)r$   r%   r&   rZ   r(   r#   r   rN   rN   H   s    2r#   rN   c                     t        t              5 } | j                  \  }}dj                  ||      }t	        t        |            5 }|j                         dk(  sJ |j                         }d d d        d d d        t        j                  j                  d            }t        |       |d   dk(  sJ |d   dk(  sJ d|d	   d
   v sJ y # 1 sw Y   axY w# 1 sw Y   exY w)Nzhttp://{}:{}/some-pathr1   rP   r.   r*   r   z
/some-pathurllibr/   z
user-agent)r   rN   r4   formatr   r   getcodereadrS   loadsrU   r>   )r   hostporturlfrF   rY   s          r   test_h11_as_serverrf   h   s    	(	) U))
d&--dD9WS\" 	a99;#%%668D	 ::dkk'*+D	$K>U"">\))tI|4444	 	 s#   6C&C,CC	CC!r[   )!rS   os.pathosr2   r   r   
contextlibr   r   http.serverr   typingr   r   urllib.requestr   r5   BaseRequestHandlerr   r   r   joindirname__file__r    openre   r`   rH   r   rL   rN   rf   r(   r#   r   <module>rr      s         . 0 & " 
 c<:::;|%%tT12  bggooh79IJ	.$ 1VVXN!9 
1@277 2@5S s   C!!C*