Ë
    RPf›  ã                   óÚ  — 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{®Gáz„?)ÚtargetÚkwargsT)ÚsocketserverÚ	TCPServerÚ	threadingÚThreadÚserve_foreverÚdaemonÚstartÚshutdown)r	   ÚhttpdÚthreads      ú\/var/www/fastapitest/venv/lib/python3.12/site-packages/h11/tests/test_against_stdlib_http.pyÚsocket_serverr      sk   è ø€ ô ×"Ñ"Ð#3°WÓ=€EÜ×ÑØ×"Ñ"¨O¸TÐ+Bô€Fð €F„MðØ�‰ŒØŠà�‰Õøˆ�‰Õü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   (   si  € Ü	Ô1Ó	2ð 1°eÜ”V×-Ñ-¨e×.BÑ.BÓCÓDð 	1ÈÜ—‘œsŸz™zÓ*ˆAà�I‰IØ—‘Ü—K‘KØ$¨VÐ>SÐ=Tôóôð �I‰I�a—f‘fœS×-Ñ-Ó/Ó0Ô1ä“;ˆDØØŸ™›�Ü�e”ØœCŸM™MÑ)ð —N‘N 1§6¡6¨"£:Ô.ØÜ˜“;¤#§,¡,Ñ.Ø ×,Ñ,°Ò3Ð3Ð3Ü˜“;¤#§(¡(Ñ*Ø˜EŸJ™JÑ&�DÜ˜“;¤#×"2Ñ"2Ñ2Øð ô ˜“;¤.Ò0Ð0Ñ0÷7	1÷1ð 1÷	1ð 	1ú÷1ð 1ús#   �)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—\‘\Ó"ð 	2 aÜ—‘œsŸz™zÓ*ˆAØˆGØØŸ™›�ØœCŸM™MÑ)ð —N‘N 1§6¡6¨"£:Ô.ØÜ˜“;¤#§+¡+Ñ-Ø#�GÜ˜“;¤#×"2Ñ"2Ñ2Øð ð Ð&Ð&Ð&Ü—:‘:à%Ÿn™n×3Ñ3°GÓ<Ø%Ÿn™n×3Ñ3°GÓ<ð .5¯_©_÷ á)˜T 5ð Ÿ™ GÓ,¨e¯l©l¸7Ó.CÑCó ñó	ˆDð �I‰I�a—f‘fœSŸ\™\°cÀ2ÔFÓGÔHØ�I‰I�a—f‘fœSŸX™X¨4¯;©;°wÓ+?Ô@ÓAÔBØ�I‰I�a—f‘fœS×-Ñ-Ó/Ó0Ô1÷7	2ð 	2ùó& ÷'	2ð 	2ús   –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Ø&×-Ñ-¨d°DÓ9ˆÜ”W˜S“\Ó"ð 	 aØ—9‘9“; #Ò%Ð%Ð%Ø—6‘6“8ˆD÷	÷ô �:‰:�d—k‘k 'Ó*Ó+€DÜ	ˆ$„KØ�‰>˜UÒ"Ð"Ð"Ø�‰>˜\Ò)Ð)Ð)Ø�t˜I‘ |Ñ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˜<×:Ñ:Ð:Ñ;ðàˆ|×%Ñ% t¨TÐ1Ñ2òó ðð —‘—‘˜bŸg™gŸo™o¨hÓ7Ð9IÓJ€Ù	ˆ.˜$Óð  1Ø—V‘V“X€N÷ôÐ!9ô ó
1ô@2˜×7Ñ7ô 2ô@5÷Sð ús   ÂC!Ã!C*