Ë
    êmxiu  ã                   ób  — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ 	 d dlZe�d dlmZ  ej                   edu d«       G d	„ d
ej"                  «      «       Z G d„ de«      Z G d„ de«      Z G d„ de«      Z ej                   edu d«       G d„ de«      «       Zy# e$ r dZY Œƒw xY w)é    )Úmd5N)Úutf8)ÚAsyncHTTPTestCase)Úhttpclient_test)ÚApplicationÚRequestHandler)ÚCurlAsyncHTTPClientzpycurl module not presentc                   ó   — e Zd Zd„ Zy)ÚCurlHTTPClientCommonTestCasec                 óp   — t        t        d¬«      ¬«      }| j                  t        |t         «      «       |S )NF©Ú
allow_ipv6)Údefaults)r	   ÚdictÚ
assertTrueÚ
isinstance)ÚselfÚclients     úX/home/htdocs/ttos/venv/lib/python3.12/site-packages/tornado/test/curl_httpclient_test.pyÚget_http_clientz,CurlHTTPClientCommonTestCase.get_http_client   s*   € Ü$¬d¸eÔ.DÔEˆà�‰œ
 6Ô+>Ó?Ô@Øˆó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ ór   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚDigestAuthHandlerc                 ó    — || _         || _        y ©N©ÚusernameÚpassword)r   r!   r"   s      r   Ú
initializezDigestAuthHandler.initialize   s   € Ø ˆŒØ ˆ�r   c           
      ó  — d}d}d}| j                   j                  j                  dd «      }|��¤|j                  dd«      \  }}|dk(  sJ ‚i }|j                  d«      D ]?  }|j	                  «       j                  d	d«      \  }	}
|
d
   dk(  r|
d   dk(  r|
dd }
|
||	<   ŒA |d   |k(  sJ ‚|d   |k(  sJ ‚|d   |k(  sJ ‚|d   | j
                  k(  sJ ‚|d   | j                   j                  k(  sJ ‚t        t        | j
                  › d|› d| j                  › �«      «      j                  «       }t        t        | j                   j                  › d| j                   j                  › �«      «      j                  «       }t        t        |› d|› d|› �«      «      j                  «       }||d   k(  r| j                  d«       y | j                  d«       y | j                  d«       | j                  dd|› d|› d|› d�«       y )NÚtestÚasdfÚ1234ÚAuthorizationú é   ÚDigestú,ú=r   ú"éÿÿÿÿÚrealmÚopaqueÚnoncer!   Úuriú:ÚresponseÚokÚfaili‘  zWWW-AuthenticatezDigest realm="z
", nonce="z", opaque=")ÚrequestÚheadersÚgetÚsplitÚstripr!   Úpathr   r   r"   Ú	hexdigestÚmethodÚwriteÚ
set_statusÚ
set_header)r   r0   r1   r2   Úauth_headerÚ	auth_modeÚparamsÚ
param_dictÚpairÚkÚvÚh1Úh2Údigests                 r   r:   zDigestAuthHandler.get!   s  € ØˆØˆàˆà—l‘l×*Ñ*×.Ñ.¨ÀÓEˆØÑ"Ø +× 1Ñ 1°#°qÓ 9ÑˆI�vØ Ò(Ð(Ð(ØˆJØŸ™ SÓ)ò "�Ø—z‘z“|×)Ñ)¨#¨qÓ1‘��1Ø�Q‘4˜3’; 1 R¡5¨C¢<Ø˜!˜B˜�AØ !�
˜1’ð	"ð
 ˜gÑ&¨%Ò/Ð/Ð/Ø˜hÑ'¨6Ò1Ð1Ð1Ø˜gÑ&¨%Ò/Ð/Ð/Ø˜jÑ)¨T¯]©]Ò:Ð:Ð:Ø˜eÑ$¨¯©×(9Ñ(9Ò9Ð9Ð9Ü”T˜TŸ]™]˜O¨1¨U¨G°1°T·]±]°OÐDÓEÓF×PÑPÓRˆBÜ”T˜TŸ\™\×0Ñ0Ð1°°4·<±<×3DÑ3DÐ2EÐFÓGÓH×RÑRÓTˆBÜœ   A e W¨A¨b¨TÐ2Ó3Ó4×>Ñ>Ó@ˆFØ˜ JÑ/Ò/Ø—
‘
˜4Õ à—
‘
˜6Õ"à�O‰O˜CÔ Ø�O‰OØ"Ø    z°%°¸ÀFÀ8È1ÐMõr   N)r   r   r   r#   r:   r   r   r   r   r      s   „ ò!ó!r   r   c                   ó   — e Zd Zd„ Zy)ÚCustomReasonHandlerc                 ó(   — | j                  dd«       y )NéÈ   úCustom reason©rA   ©r   s    r   r:   zCustomReasonHandler.getF   ó   € Ø�‰˜˜_Õ-r   N©r   r   r   r:   r   r   r   rN   rN   E   ó   „ ó.r   rN   c                   ó   — e Zd Zd„ Zy)ÚCustomFailReasonHandlerc                 ó(   — | j                  dd«       y )Ni�  rQ   rR   rS   s    r   r:   zCustomFailReasonHandler.getK   rT   r   NrU   r   r   r   rX   rX   J   rV   r   rX   c                   óB   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚCurlHTTPClientTestCasec                 óL   •— t         ‰| �  «        | j                  «       | _        y r   )ÚsuperÚsetUpÚcreate_clientÚhttp_client)r   Ú	__class__s    €r   r^   zCurlHTTPClientTestCase.setUpQ   s   ø€ Ü‰‰ŒØ×-Ñ-Ó/ˆÕr   c                 ó`   — t        dt        dddœfdt        dddœfdt        fdt        fg«      S )	Nú/digestÚfooÚbarr    ú/digest_non_asciiõ   barãƒ¦Â£ú/custom_reasonú/custom_fail_reason)r   r   rN   rX   rS   s    r   Úget_appzCurlHTTPClientTestCase.get_appU   sK   € ÜàÔ-¸EÈuÑ/UÐVà'Ü%Ø!&°JÑ?ðð
 "Ô#6Ð7Ø&Ô(?Ð@ð	ó
ð 	
r   c                 ó2   — t        ddt        d¬«      dœ|¤ŽS )NTFr   )Úforce_instancer   r   )r	   r   )r   Úkwargss     r   r_   z$CurlHTTPClientTestCase.create_clientc   s&   € Ü"ð 
Ø¬$¸%Ô*@ñ
ØDJñ
ð 	
r   c                 óf   — | j                  dddd¬«      }| j                  |j                  d«       y )Nrc   rL   rd   re   ©rD   Úauth_usernameÚauth_passwordó   ok©ÚfetchÚassertEqualÚbody©r   r5   s     r   Útest_digest_authz'CurlHTTPClientTestCase.test_digest_authh   s4   € Ø—:‘:Ø ¸Èeð ó 
ˆð 	×Ñ˜Ÿ™¨Õ.r   c                 ó^   — | j                  d«      }| j                  |j                  d«       y )Nrh   rQ   )rt   ru   Úreasonrw   s     r   Útest_custom_reasonz)CurlHTTPClientTestCase.test_custom_reasonn   s%   € Ø—:‘:Ð.Ó/ˆØ×Ñ˜Ÿ™¨/Õ:r   c                 óp   — | j                  d«      }| j                  t        |j                  «      d«       y )Nri   zHTTP 400: Custom reason)rt   ru   ÚstrÚerrorrw   s     r   Útest_fail_custom_reasonz.CurlHTTPClientTestCase.test_fail_custom_reasonr   s+   € Ø—:‘:Ð3Ó4ˆØ×Ñœ˜XŸ^™^Ó,Ð.GÕHr   c                 óf   — | j                  dddd¬«      }| j                  |j                  d«       y )Nrf   rL   rd   rg   ro   rr   rs   rw   s     r   Útest_digest_auth_non_asciiz1CurlHTTPClientTestCase.test_digest_auth_non_asciiv   s7   € Ø—:‘:ØØØØ$ð	 ó 
ˆð 	×Ñ˜Ÿ™¨Õ.r   )r   r   r   r^   rj   r_   rx   r{   r   r�   Ú__classcell__)ra   s   @r   r[   r[   O   s'   ø„ ô0ò
ò
ò
/ò;òIö/r   r[   )Úhashlibr   ÚunittestÚtornado.escaper   Útornado.testingr   Útornado.testr   Útornado.webr   r   ÚpycurlÚImportErrorÚtornado.curl_httpclientr	   ÚskipIfÚHTTPClientCommonTestCaser   r   rN   rX   r[   r   r   r   ú<module>rŽ      sÇ   ðÝ Û å Ý -Ý (ß 3ðÛð 
ÐÝ;ð €‡��˜4�Ð!<Ó=ô ?×#KÑ#Kó ó >ðô&˜ô &ôR.˜.ô .ô
.˜nô .ð
 €‡��˜4�Ð!<Ó=ô-/Ð.ó -/ó >ñ-/øðI ò Ø‚Fðús   ¦B$ Â$B.Â-B.