
    Mhu                     ~   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n# e$ r dZY nw xY w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dS )    )md5N)utf8)AsyncHTTPTestCase)httpclient_test)ApplicationRequestHandler)CurlAsyncHTTPClientzpycurl module not presentc                       e Zd Zd ZdS )CurlHTTPClientCommonTestCasec                     t          t          d                    }|                     t          |t                                |S )NF
allow_ipv6)defaults)r	   dict
assertTrue
isinstance)selfclients     a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tornado/test/curl_httpclient_test.pyget_http_clientz,CurlHTTPClientCommonTestCase.get_http_client   s?    $de.D.D.DEEE
6+>??@@@    N)__name__
__module____qualname__r    r   r   r   r      s#            r   r   c                       e Zd Zd Zd ZdS )DigestAuthHandlerc                 "    || _         || _        d S Nusernamepassword)r   r!   r"   s      r   
initializezDigestAuthHandler.initialize   s      r   c           
      t   d}d}d}| j         j                            dd           }||                    dd          \  }}|dk    sJ i }|                    d          D ]T}|                                                    d	d          \  }	}
|
d
         dk    r|
d         dk    r
|
dd         }
|
||	<   U|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	                             
                                }t          t          | j         j         d| j         j                             
                                }t          t          | d| d|                     
                                }||d         k    r|                     d           d S |                     d           d S |                     d           |                     dd| d| d| d           d S )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*..EE" + 1 1#q 9 9Iv((((JS)) " "zz||))#q111Q43;;1R5C<<!B$A !
1g&%////h'61111g&%////j)T]::::e$(99999TT]DDUDDT]DDEEFFPPRRBTT\0FF4<3DFFGGHHRRTTB22e22b223344>>@@FJ///

4     

6"""""OOC   OO"MMM%MMFMMM    r   N)r   r   r   r#   r:   r   r   r   r   r      s2        ! ! !! ! ! ! !r   r   c                       e Zd Zd ZdS )CustomReasonHandlerc                 2    |                      dd           d S )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dS )CustomFailReasonHandlerc                 2    |                      dd           d S )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                 z    t                                                       |                                 | _        d S r   )supersetUpcreate_clienthttp_client)r   	__class__s    r   r^   zCurlHTTPClientTestCase.setUpQ   s.    --//r   c                 p    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   sV    -Eu/U/UV'%!&J??
 "#67&(?@	
 
 	
r   c                 <    t          ddt          d          d|S )NTFr   )force_instancer   r   )r	   r   )r   kwargss     r   r_   z$CurlHTTPClientTestCase.create_clientc   s6    " 
$%*@*@*@
 
DJ
 
 	
r   c                 n    |                      dddd          }|                     |j        d           d S )Nrc   rL   rd   re   rD   auth_usernameauth_password   okfetchassertEqualbodyr   r5   s     r   test_digest_authz'CurlHTTPClientTestCase.test_digest_authh   sC    ::e  
 
 	.....r   c                 f    |                      d          }|                     |j        d           d S )Nrh   rQ   )rt   ru   reasonrw   s     r   test_custom_reasonz)CurlHTTPClientTestCase.test_custom_reasonn   s2    ::.///:::::r   c                     |                      d          }|                     t          |j                  d           d S )Nri   zHTTP 400: Custom reason)rt   ru   strerrorrw   s     r   test_fail_custom_reasonz.CurlHTTPClientTestCase.test_fail_custom_reasonr   s;    ::344X^,,.GHHHHHr   c                 n    |                      dddd          }|                     |j        d           d S )Nrf   rL   rd   rg   ro   rr   rs   rw   s     r   test_digest_auth_non_asciiz1CurlHTTPClientTestCase.test_digest_auth_non_asciiv   sF    ::$	  
 
 	.....r   )r   r   r   r^   rj   r_   rx   r{   r   r   __classcell__)ra   s   @r   r[   r[   O   s        0 0 0 0 0
 
 

 
 

/ / /; ; ;I I 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 3 3 3 3 3 3 3MMMM   FFF 
;;;;;; 4!<==    ?#K   >=& & & & & & & &R. . . . .. . . .
. . . . .n . . .
 4!<==-/ -/ -/ -/ -/. -/ -/ >=-/ -/ -/s   + 55