JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/acme/_internal/tests/__pycache__/standalone_test.cpython-39.pyc

a

}|�g�&�@s4dZddlmZddlZddlZddlZddlZddlm	Z	ddl
Z
ddl
mZddlZ
ddlZddlZddlmZddlmZddlmZddlmZGd	d
�d
e
j�ZGdd�de
j�Ze
�ej��d
�Gdd�de
j��ZGdd�de
j�ZGdd�de
j�Zedk�r0e� e�!ej"dd�e#g��dS)zTests for acme.standalone.�N)�Set)�mock)�
challenges)�crypto_util)�errors)�	test_utilc@s eZdZdZdd�Zdd�ZdS)�
TLSServerTestz$Tests for acme.standalone.TLSServer.cCs(ddlm}|dtjdd�}|��dS)Nr��	TLSServer��rT)�bind_and_activate)�acme.standaloner
�socketserver�BaseRequestHandler�server_close��selfr
�server�r�H/usr/lib/python3.9/site-packages/acme/_internal/tests/standalone_test.py�	test_binds
�zTLSServerTest.test_bindcCs0tjr,ddlm}|dtjddd�}|��dS)Nrr	rT)r
�ipv6)�socketZhas_ipv6rr
rrrrrrr�	test_ipv6s
�zTLSServerTest.test_ipv6N)�__name__�
__module__�__qualname__�__doc__rrrrrrrsrc@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�HTTP01ServerTestz'Tests for acme.standalone.HTTP01Server.cCsjtj�t�d��|_t�|_ddlm	}|d|jd�|_
|j
j��d|_
tj|j
jd�|_|j��dS)N�rsa1024_key.pemr��HTTP01Serverr��	resources���target)�jose�JWK�loadr�load_vector�account_key�setr$rr"rr�getsockname�port�	threading�Thread�
serve_forever�thread�start)rr"rrr�setUp+s�zHTTP01ServerTest.setUpcCs"|j��|j��|j��dS�N�r�shutdownr3�joinr�rrrr�tearDown7s

zHTTP01ServerTest.tearDowncCs2tjd�|j�dd�}|jdks$J�|js.J�dS�Nzhttp://localhost:{0}F�Zverifyz'ACME client standalone challenge solver��requests�get�formatr/�text�ok�r�responserrr�
test_index<s
�zHTTP01ServerTest.test_indexcCs*tjd�|j�dd�}|jtjks&J�dS�Nzhttp://localhost:{0}/fooFr=�r?r@rAr/Zstatus_code�http_clientZ	NOT_FOUNDrDrrr�test_404Bs�zHTTP01ServerTest.test_404cCsftjdd�}|�|j�\}}ddlm}|j|||d�}|rH|j�|�|j	j
|jd|j��|j
d�S�Nsxxxxxxxxxxxxxxxx)�tokenr)�HTTP01RequestHandler)�challrE�
validation�	localhost)r/�rZHTTP01Zresponse_and_validationr,rrMZHTTP01Resourcer$�addrEZ
simple_verifyrNZ
public_keyr/�rrRrNrErOrM�resourcerrr�_test_http01Gs��zHTTP01ServerTest._test_http01cCs|jdd�sJ�dS�NT�rR�rUr:rrr�test_http01_foundTsz"HTTP01ServerTest.test_http01_foundcCs|jdd�rJ�dS�NFrWrXr:rrr�test_http01_not_foundWsz&HTTP01ServerTest.test_http01_not_foundc	Cs�ddlm}|dt�dd���}tj|jd�}|��t���z}|�d|j�	�df�tj|j
d�}|��|�d	�|��}z|�
tj
�WnYn0|r�Jd
��Wd�n1s�0YWd�n1s�0YdS)Nrr!rg�������?)r$�timeoutr&rPr%g@z"Server shutdown should not be hung)rr"r-r0r1r2r4rZconnectr.r8r9�is_aliveZ	SHUT_RDWR)rr"rZ
server_thread�clientZstop_threadZis_hungrrr�test_timely_shutdownZs

z%HTTP01ServerTest.test_timely_shutdownN)rrrrr5r;rFrJrUrYr[r_rrrrr's
rzpyOpenSSL too oldc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�TLSALPN01ServerTestz)Test for acme.standalone.TLSALPN01Server.cCstdt�d�t�d�fi|_dt�d�t�d�fi|_ddlm}|d|j|jd	�|_tj	|jj
d
�|_|j��dS)N�	localhostzrsa2048_key.pemzrsa2048_cert.pemzrsa4096_key.pemzrsa4096_cert.pemr)�TLSALPN01Server)rPr)�certs�challenge_certsr&)
rZload_pyopenssl_private_keyZ	load_certrcrdrrbrr0r1r2r3r4)rrbrrrr5us���zTLSALPN01ServerTest.setUpcCs"|j��|j��|j��dSr6r7r:rrrr;�s

zTLSALPN01ServerTest.tearDowncCsT|jj��dd�\}}tjd||ddgd�}t�|�t�|jdd�ksPJ�dS)N�rar%s
acme-tls/1��hostr/r\Zalpn_protocols)rrr.r�	probe_snir(ZComparableX509rd)rrgr/Zcertrrr�test_challenge_certs�s��z(TLSALPN01ServerTest.test_challenge_certscCs^|jj��dd�\}}t�tj��&tjd||ddgd�Wd�n1sP0YdS)Nrerar%sbad-alpnrf)	rrr.�pytest�raisesr�Errorrrh)rrgr/rrr�
test_bad_alpn�s�z!TLSALPN01ServerTest.test_bad_alpnN)rrrrr5r;rirmrrrrr`qs
	r`c@s<eZdZdZGdd�dej�Ze�d�dd��Z	dd�Z
d	S)
�BaseDualNetworkedServersTestz2Test for acme.standalone.BaseDualNetworkedServers.cs eZdZdZ�fdd�Z�ZS)z1BaseDualNetworkedServersTest.SingleProtocolServerzUServer that only serves on a single protocol. FreeBSD has this behavior for AF_INET6.cs�|�dd�}|r"tj|_d|d<ntj|_t�j|i|��|r�ttdd�}|j�|tj	d�z|�
�|��Wn|���Yn0dS)NrFr
ZIPPROTO_IPV6�)r%)
�poprZAF_INET6Zaddress_familyZAF_INET�super�__init__�getattrZ
setsockoptZIPV6_V6ONLYZserver_bindZserver_activater)r�args�kwargsr�level��	__class__rrrr�s
z:BaseDualNetworkedServersTest.SingleProtocolServer.__init__)rrrrrr�
__classcell__rrrwr�SingleProtocolServer�srzzsocket.socket.bindcCstddlm}ddlm}t|d�|_t�tj	�� }|t
jdtj
�Wd�n1sV0Y|jj|kspJ�dS)Nr)�
EADDRINUSE��BaseDualNetworkedServerszFake addr in use errorr)�errnor{rr}�OSErrorZside_effectrjrkr�errorrnrzrr�value)rZ	mock_bindr{r}�exc_inforrr�test_fail_to_bind�s�"z.BaseDualNetworkedServersTest.test_fail_to_bindcCsfddlm}|tjdtj�}|��}d}|D] }|d}|rH||ksHJ�|}q,|jD]}|��qTdS)Nrr|rr%)	rr}rnrzrr�getsocknames�serversr)rr}r�Z	socknamesZ	prev_portZsocknamer/rrrr�test_ports_equal�s�
z-BaseDualNetworkedServersTest.test_ports_equalN)rrrrrZ	TCPServerrzrZpatchr�r�rrrrrn�s

rnc@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�HTTP01DualNetworkedServersTestz5Tests for acme.standalone.HTTP01DualNetworkedServers.cCsZtj�t�d��|_t�|_ddlm	}|d|jd�|_
|j
��dd|_|j
�
�dS)Nr r)�HTTP01DualNetworkedServersrr#r%)r(r)r*rr+r,r-r$rr�r�r�r/r2)rr�rrrr5�s�z$HTTP01DualNetworkedServersTest.setUpcCs|j��dSr6)r�Zshutdown_and_server_closer:rrrr;�sz'HTTP01DualNetworkedServersTest.tearDowncCs2tjd�|j�dd�}|jdks$J�|js.J�dSr<r>rDrrrrF�s
�z)HTTP01DualNetworkedServersTest.test_indexcCs*tjd�|j�dd�}|jtjks&J�dSrGrHrDrrrrJ�s�z'HTTP01DualNetworkedServersTest.test_404cCsftjdd�}|�|j�\}}ddlm}|j|||d�}|rH|j�|�|j	j
|jd|j��|j
d�SrKrQrSrrrrU�s��z+HTTP01DualNetworkedServersTest._test_http01cCs|jdd�sJ�dSrVrXr:rrrrYsz0HTTP01DualNetworkedServersTest.test_http01_foundcCs|jdd�rJ�dSrZrXr:rrrr[sz4HTTP01DualNetworkedServersTest.test_http01_not_foundN)rrrrr5r;rFrJrUrYr[rrrrr��s
r��__main__r%)$rZhttp.clientr^rIrr�sysr0�typingrZunittestrZjosepyr(rjr?ZacmerrrZacme._internal.testsrZTestCaserrZskipIfZ	TLSALPN01�is_supportedr`rnr�r�exit�main�argv�__file__rrrr�<module>s.J3:0

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg