JFIF$        dd7 

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

a

}|�g��@s�dZddlZddlZddlmZddlZddlZddlm	Z	ddl
Z
ddl
mZddlZ
ddlZddlZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZe�d
�Ze�d�Ze�d�Ze
j �!e�d��Z"e�#ddddej#�$�d��Z%Gdd�de
j&�Z'Gdd�de
j(�Z)Gdd�de
j&�Z*Gdd�de
j&�Z+e,dk�r�e�-e�.ej/dd�e0g��dS) zTests for acme.client.�N)�Dict)�mock)�
challenges)�errors)�jws)�messages)�
messages_test)�	test_util)�
ClientNetwork)�ClientV2zcert-san.pemz
csr-mixed.pemzcsr-nosans.pemzrsa512_key.pemz1https://www.letsencrypt-demo.org/acme/new-account�/https://www.letsencrypt-demo.org/acme/new-noncez/https://www.letsencrypt-demo.org/acme/new-orderz1https://www.letsencrypt-demo.org/acme/revoke-cert)Z
newAccount�newNonceZnewOrder�
revokeCert�metac@sTeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
�d�dd��Ze
�d�dd��Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Z d9d:�Z!e
�d�d;d<��Z"e
�d�d=d>��Z#e
�d�d?d@��Z$e
�d�dAdB��Z%dCdD�Z&dES)F�ClientV2TestzTests for acme.client.ClientV2.cCs�tjdtjiid�|_t��|_|j|jj_|j|jj_t	j
t	jdd�|_d|_
t	j|j
t��d�}t|�}t	jfi|��|_t	j|dd�|_d	}t	j|d
t	jtjt�d�d�d
�}t	j||d�|_t	jt	j
t	jdd�|fd�|_t	j |j|d�|_!d|_"t#|_$t%|j$|j�|_&|jj'dd�|_d|_(|jj't	j
t	jdd�t	j)d�|_*t	j |j*|j(d�|_+t	j,|jj|j*jft	j)|j!j-|j(fdd�|_.t	j/|j.d|j!|j+gt0d�|_1t	j/|j.d|j!|j+gt2d�|_3dS)NT)�ok�status_code�headers�linkszexample.com)�typ�value)zmailto:cert-admin@example.comztel:+12025551212)�contact�key�+https://www.letsencrypt-demo.org/acme/reg/1��body�uriz-https://www.letsencrypt-demo.org/acme/authz/1z/1z+evaGxfADs6pSRb2LAv9IZf17Dt3juxGJ-PCt92wr-oA)�token)r�statusZchall)r�
authzr_uri)�
identifierr�)Zterms_of_service_agreedz-https://www.letsencrypt-demo.org/acme/authz/2zwww.example.com)r rz=https://www.letsencrypt-demo.org/acme/acct/1/order/1/finalize)Zidentifiersr�authorizations�finalizez4https://www.letsencrypt-demo.org/acme/acct/1/order/1)rrr"Zcsr_pem)4r�	MagicMock�http_client�OK�response�net�post�return_value�getrZ
IdentifierZIDENTIFIER_FQDNr rZRegistration�KEYZ
public_key�dictZNewRegistration�new_regZRegistrationResource�regrZ
ChallengeBody�STATUS_VALIDrZDNS�jose�	b64decodeZChallengeResource�challrZ
Authorization�authz�AuthorizationResource�authzr�rsn�DIRECTORY_V2�	directoryr�client�update�authzr_uri2ZSTATUS_PENDING�authz2�authzr2ZOrderr�orderZ
OrderResource�
CSR_MIXED_PEM�orderr�CSR_NO_SANS_PEMZorderr2)�selfZregZthe_argr�challb�rE�D/usr/lib/python3.9/site-packages/acme/_internal/tests/client_test.py�setUp*s�
�
�
��
������
������zClientV2Test.setUpcCs0tj|j_|jj��|jj_|jj	|jj
d<dS�N�Location)r%�CREATEDr'rr/r�to_json�jsonr*rr�rCrErErF�test_new_accountjs
zClientV2Test.test_new_accountcCsFtj|j_|jj��|jj_|jj	|jj
d<|jj�dddii�dS)NrIzterms-of-service�urlz$https://www.letsencrypt-demo.org/tos)
r%rJr'rr/rrKrLr*rrrr;rMrErErF�test_new_account_tos_linkqs
�z&ClientV2Test.test_new_account_tos_linkcCsXtj|j_|jj|jjd<t�t	j
��|j�|j
�Wd�n1sJ0YdSrH)r%r&r'rr/rr�pytest�raisesr�
ConflictErrorr:Znew_accountr.rMrErErF�test_new_account_conflict}s
z&ClientV2Test.test_new_account_conflictcCsH|jj|jjjdd�d�}|j��|jj_tj|j_	|jj
|jjd<dS)NZdeactivated�r�rrI)r/r;rrKr'rLr*r%r&rrr)rCZdeactivated_regrrErErF�test_deactivate_account�s�
z$ClientV2Test.test_deactivate_accountcCs>|jj|jjjtjd�d�}|j��|jj_|j	�
|j�}dS)NrUrV)r6r;rrZSTATUS_DEACTIVATEDrKr'rLr*r:Zdeactivate_authorization)rCZdeactivated_authzr6rErErF�test_deactivate_authorization�s�z*ClientV2Test.test_deactivate_authorizationcCs�t�|j�}tj|_|j��|j_	|j
j|jd<||j
j_	t�|j�}|j��|j_	|jj|jd<|j}|j��|j_	|jj|jd<t�d��}||f|_Wd�n1s�0Yt�d��}||f|_Wd�n1s�0YdS)NrIz!acme.client.ClientV2._post_as_get)�copy�deepcopyr'r%rJrr?rKrLr*rArrr(r)r4r6r=r>r�patch�side_effect)rCZorder_responseZauthz_responseZauthz_response2Zmock_post_as_getrErErF�test_new_order�s"


zClientV2Test.test_new_ordercCs�d|jji|jjd<|jj��|jj_tj	dd�}|j
�|jj|�t�
tj��*|j
�|jjjdd�|�Wd�n1s�0YdS)NrOZup�Z
validation�foo)r)r3rr'rrrKrLr*r�DNSResponser:�answer_challengerQrRr�UnexpectedUpdater;)rCZchall_responserErErF�test_answer_challege�sz!ClientV2Test.test_answer_challegecCsJt�tj��*|j�|jjtj	dd��Wd�n1s<0YdS)Nr^)
rQrRr�ClientErrorr:rar3rrr`rMrErErF�"test_answer_challenge_missing_next�sz/ClientV2Test.test_answer_challenge_missing_nextzacme.client.datetimecCs~t�ddd�|jj_tj|_|j��tjdd�}tj|jd�|j_tj|jd�|j_	|jj�
|j|�|jj	�
|j|�dS)N�����Z�Zseconds�r*)�datetime�nowr*�	timedeltarZMockrAr:�poll_authorizations�finalize_order�assert_called_once_with)rC�
mock_datetimeZexpected_deadlinerErErF�test_poll_and_finalize�sz#ClientV2Test.test_poll_and_finalizecCs�t�ddd�t�ddd�t�ddd�g}||jj_|j��|j��|j��g|jj_t�	t
j��$|j�
|j|d�Wd�n1s�0YdS)Nrfrgrh��r!)rlrmr\r4rKr=r'rLrQrRr�TimeoutErrorr:rorA)rCrrZnow_side_effectrErErF� test_poll_authorizations_timeout�s�
�
z-ClientV2Test.test_poll_authorizations_timeoutcCs�t�ddd�}|jjjtjtj�d�d�}|jjtj|fd�}|�	�|j
j_t
�tj�� |j�|j|�Wd�n1s~0YdS)N�'�	�unauthorized)r�error)rr)rlr3rr;r�STATUS_INVALID�Error�	with_coder4rKr'rLr*rQrRrZValidationErrorr:rorA)rC�deadlinerDr4rErErF� test_poll_authorizations_failure�s
�z-ClientV2Test.test_poll_authorizations_failurecCsft�ddd�}|jjtjd�}tj||jd�}|jj|j|gd�}|j	�
�|j�
�|�
�f|jj_
dS)NrxryrUr)r")rlr=r;rr0r5r<rAr6r4rKr'rLr\)rCrZupdated_authz2Zupdated_authzr2�updated_orderrrErErF� test_poll_authorizations_success�s��
z-ClientV2Test.test_poll_authorizations_successcCsd|jj|jjdd�d�}|��|jj_t�t	j
��|j�|j
�Wd�n1sV0YdS)Nr_�r)r )r4r;r rKr'rLr*rQrRrrbr:�pollr6)rCZ
updated_authzrErErF�test_poll_unexpected_update�sz(ClientV2Test.test_poll_unexpected_updatecCsJ|jjdtjd�}|jj|td�}|��|jj_	t|j_
t�ddd�}dS)N�+https://www.letsencrypt-demo.org/acme/cert/�Zcertificater)r�
fullchain_pemrxry)r?r;rr0rA�CERT_SAN_PEMrKr'rLr*�textrl)rC�
updated_orderr�rrErErF�test_finalize_order_success�s�z(ClientV2Test.test_finalize_order_successcCsv|jjtj�d�tjd�}|��|jj_	t
�
ddd�}t�t
j�� |j�|j|�Wd�n1sh0YdS)Nrz�r{rrxry)r?r;rr}r~r|rKr'rLr*rlrQrRrZ
IssuanceErrorr:rprA)rCr�rrErErF�test_finalize_order_error�s
�z&ClientV2Test.test_finalize_order_errorc	Csn|jjdtjd�}|��|jj_tj	t
jdd��*|j�
|jt�ddd��Wd�n1s`0YdS)Nr�zThe certificate order failed)�matchrxry)r?r;rr|rKr'rLr*rQrRrr}r:rprArl)rCr?rErErF�"test_finalize_order_invalid_statussz/ClientV2Test.test_finalize_order_invalid_statuscCsVtj��tjdd�}t�tj�� |j�|j	|�Wd�n1sH0YdS)N�<rj)
rlrmrnrQrRrrvr:rprA)rCrrErErF�test_finalize_order_timeoutsz(ClientV2Test.test_finalize_order_timeoutcCs�|jjdtjd�}|jj|tttgd�}|��|jj_	t|j_
d|jjd<t�ddd�}|j
j|j|dd	�}|jjjd
tjtjd�|jjjdtjtjd�|jjd=|j
j|j|dd	�}dS)
Nr�r�)rr�Zalternative_fullchains_pemz�<https://example.com/acme/cert/1>;rel="alternate", <https://example.com/dir>;rel="index", <https://example.com/acme/cert/2>;title="foo";rel="alternate"ZLinkrxryT)Zfetch_alternative_chainszhttps://example.com/acme/cert/1��
new_nonce_urlzhttps://example.com/acme/cert/2)r?r;rr0rAr�rKr'rLr*r�rrlr:rpr(r)Zassert_any_callr�ANY)rCr�r�rZresprErErF�test_finalize_order_alt_chains
s0���
�
�
z+ClientV2Test.test_finalize_order_alt_chainscCs6|j�tj|j�|jjj|jdt	j
tdd�dS)Nrr
r�)r:�revoker�CERTr7r(r)rqr9rr�r8rMrErErF�test_revoke(s�zClientV2Test.test_revokecCsLtj|j_t�tj��"|j�	t
j|j�Wd�n1s>0YdS�N)
r%�METHOD_NOT_ALLOWEDr'rrQrRrrdr:r�rr�r7rMrErErF�#test_revoke_bad_status_raises_error-s


�z0ClientV2Test.test_revoke_bad_status_raises_errorcCs@|jj|jjd<|jj��|jj_|jjjdd���|jj_dS)NrIrE)r)	r/rr'rrrKrLr*r;rMrErErF�test_update_registration3s
�z%ClientV2Test.test_update_registrationcCs t�dtjjdd�i�|j_dS)NrT�Zexternal_account_required�r�	Directory�Metar:r9rMrErErF�#test_external_account_required_true?s�
z0ClientV2Test.test_external_account_required_truecCs t�dtjjdd�i�|j_dS)NrFr�r�rMrErErF�$test_external_account_required_falseFs�
z1ClientV2Test.test_external_account_required_falsecCsdSr�rErMrErErF�&test_external_account_required_defaultMsz3ClientV2Test.test_external_account_required_defaultcCs"|jj��|jj_d|jjd<dS)NrrI)r/rrKr'rLr*rrMrErErF�test_query_registration_clientPsz+ClientV2Test.test_query_registration_clientcCslt�d��N}|j|_|j�|j�|jjjj|jj	ddd�|jjj
��Wd�n1s^0YdS)Nz*acme.client.ClientV2._authzr_from_responserr�)rr[r>r*r:r�r(r)rqrr+Zassert_not_called)rCZmock_clientrErErF�test_post_as_getUs
�zClientV2Test.test_post_as_getcCsd|jjd<dS)NzFri, 31 Dec 1999 23:59:59 GMT�Retry-After)r'rrMrErErF�test_retry_after_date`sz"ClientV2Test.test_retry_after_datecCs,t�ddd�|jj_tj|_d|jjd<dS)N����Zfoooor��rlrmr*rnr'r�rCZdt_mockrErErF�test_retry_after_invalidesz%ClientV2Test.test_retry_after_invalidcCs6t�ddd�|jj_tj|_tj|j_d|jjd<dS)Nr�r�r�zTue, 116 Feb 2016 11:50:00 MSTr�)rlrmr*rnr\r'rr�rErErF�test_retry_after_overflowns

z&ClientV2Test.test_retry_after_overflowcCs,t�ddd�|jj_tj|_d|jjd<dS)Nr�r�r�Z50r�r�r�rErErF�test_retry_after_secondsxsz%ClientV2Test.test_retry_after_secondscCs t�ddd�|jj_tj|_dS)Nr�r�r�)rlrmr*rnr�rErErF�test_retry_after_missing�sz%ClientV2Test.test_retry_after_missingcCst��|jj_dSr�)r8rKr'rLr*rMrErErF�test_get_directory�szClientV2Test.test_get_directoryN)'�__name__�
__module__�__qualname__�__doc__rGrNrPrTrWrXr]rcrerr[rsrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rErErErFr'sP@		





	

rc@s(eZdZdd�Zdd�Zedd��ZdS)�MockJSONDeSerializablecCs
||_dSr�r�)rCrrErErF�__init__�szMockJSONDeSerializable.__init__cCs
d|jiS)Nr_r�rMrErErF�to_partial_json�sz&MockJSONDeSerializable.to_partial_jsoncCsdSr�rE)�clsZjobjrErErF�	from_json�sz MockJSONDeSerializable.from_jsonN)r�r�r�r�r��classmethodr�rErErErFr��sr�c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Ze
�d�dd��Ze
�d�dd��Zdd�Zdd�Zdd�Ze
�d�dd ��Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd3d*d+�Zd,d-�Ze
�d.�d/d0��Zd1d2�Zd)S)4�ClientNetworkTestz$Tests for acme.client.ClientNetwork.cCsXt��|_tjtjjd�|_tttj	|jdd�|_
tjdtjd�|_
i|j
_i|j
_dS)Nrk�acme-python-test)r�alg�
verify_sslZ
user_agentT�rr)rr$r��sentinel�wrappedZwrap_in_jwsr
r,r1ZRS256r(r%r&r'rrrMrErErFrG�s

�zClientNetworkTest.setUpcCsdSr�rErMrErErF�	test_init�szClientNetworkTest.test_initcCs&|jjtd�ddd�}tj�|�}dS)Nr_�TgrO�ZnoncerO)r(�_wrap_in_jwsr��acme_jws�JWS�
json_loads�rCZjws_dumprrErErF�test_wrap_in_jws�s

�z"ClientNetworkTest.test_wrap_in_jwscCs2ddi|j_|jjtd�ddd�}tj�|�}dS)Nrzacct-urir_r�rOr�)r(Zaccountr�r�r�r�r�r�rErErF�test_wrap_in_jws_v2�s
�z%ClientNetworkTest.test_wrap_in_jws_v2c	Cs�d|j_i|jj_t�d��R}tj|_t	�
tj��|j
�|j�Wd�n1sV0YWd�n1st0YdS)NFz$acme.client.messages.Error.from_json)r'rrLr*rr[r1ZDeserializationErrorr\rQrRrrdr(�_check_response)rCr�rErErF�(test_check_response_not_ok_jobj_no_error�s
z:ClientNetworkTest.test_check_response_not_ok_jobj_no_errorcCsbd|j_tjjdddd���|jj_t�	tj��|j
�|j�Wd�n1sT0YdS)NFZserverInternalr_z
some title)Zdetail�title)r'rrr}r~rKrLr*rQrRr(r�rMrErErF�%test_check_response_not_ok_jobj_error�s�z7ClientNetworkTest.test_check_response_not_ok_jobj_errorcCsPd|j_t|jj_t�tj��|j	�
|j�Wd�n1sB0YdS)NF)r'r�
ValueErrorrLr\rQrRrrdr(r�rMrErErF�"test_check_response_not_ok_no_jobj�s
z4ClientNetworkTest.test_check_response_not_ok_no_jobjc	Csnt|jj_|jjdfD]R}||jjd<t�t	j
��&|jj|j|jjd�Wd�q1s^0YqdS)Nr_�Content-Type��content_type)r�r'rLr\r(�JSON_CONTENT_TYPErrQrRrrdr��rCZresponse_ctrErErF�*test_check_response_ok_no_jobj_ct_required�s

�z<ClientNetworkTest.test_check_response_ok_no_jobj_ct_requiredcCs,t|jj_|jjdfD]}||jjd<qdS�Nr_r�)r�r'rLr\r(r�rr�rErErF�$test_check_response_ok_no_jobj_no_ct�s
z6ClientNetworkTest.test_check_response_ok_no_jobj_no_ctzacme.client.loggercCsJi|jj_d|jjd<z|j�dd�Wnty<YdS0td��dS)Nzapplication/json; charset=utf-8r��<Ignoring wrong Content-Type (%r) for JSON decodable responsez5Expected Content-Type warning to not have been logged)r'rLr*r�debug�assert_called_with�AssertionError�rCZmock_loggerrErErF�&test_check_response_ok_ct_with_charset�s
�z8ClientNetworkTest.test_check_response_ok_ct_with_charsetcCs(i|jj_d|jjd<|j�dd�dS)Nz
text/plainr�r�)r'rLr*rr�r�r�rErErF�test_check_response_ok_bad_ct�s
�z/ClientNetworkTest.test_check_response_ok_bad_ctcCsNd|j_d|j_t�tj��|j�|j�Wd�n1s@0YdS)NFi�)	r'rrrQrRrrSr(r�rMrErErF�test_check_response_conflictsz.ClientNetworkTest.test_check_response_conflictcCs,i|jj_|jjdfD]}||jjd<qdSr�)r'rLr*r(r�rr�rErErF�test_check_response_jobj
s
z*ClientNetworkTest.test_check_response_jobjc	CsBt��|j_|j|jjj_|jjjjdddtjtjtjdd�dS)N�HEAD�http://example.com/r_�baz)r�verify�timeout�bar�	rr$r(�sessionr'�requestr*rqr�rMrErErF�test_send_requests
�z#ClientNetworkTest.test_send_requestcCsZt��|j_tjdtjdd�|jjj_|jjdddtj	ddd	id
�|j
�ddd
d�dS)NTshi)rrZcontentr�r�r_r�ZAcceptzapplication/pkix-cert)r�r�rz!Received response:
HTTP %d
%s

%s���saGk=)rr$r(r�r%r&r�r*�
_send_requestr�r�r�r�rErErF�test_send_request_get_ders���z+ClientNetworkTest.test_send_request_get_derc
CsDt��|j_|j|jjj_|jjjjdddtjtjtjddd�dS)NZPOSTr�r_Zquxr�)rr�r��datar�r�rMrErErF�test_send_request_post+s
�z(ClientNetworkTest.test_send_request_postcCsNdD]D}t��|j_|j|jjj_||j_|jjjjdd|tj	tj	d�qdS)N)TF�GETr��r�r�r)
rr$r(r�r'r�r*r�rqr�)rCr�rErErF�test_send_request_verify_ssl5s
�z.ClientNetworkTest.test_send_request_verify_sslcCs�t��|j_|jjddddid�|jjjjddtjtjddd�d�|jjddd	d
id�|jjjjddtjtjd	d
id�dS)Nr�r�r�r��rr�)�
User-Agentr�r�r�Zfoo2)	rr$r(r�r�r�rqr�r�rMrErErF�test_send_request_user_agentBs 
�
�
�
�z.ClientNetworkTest.test_send_request_user_agentcCsHt��|j_|jjddddid�|jjjjtjtjtjtjdd�dS)Nr�r�r�r�r��-)r�rr�)rr$r(r�r�r�rqr�rMrErErF�test_send_request_timeoutRs
�
�z+ClientNetworkTest.test_send_request_timeoutNcCs2t��}|dur||j_||j_|`|j��dSr�)rr$�closer\r(r�rq)rCZclose_exceptionZsessrErErF�test_del[szClientNetworkTest.test_delcCs|�t�dSr�)r��ReferenceErrorrMrErErF�test_del_erroresz ClientNetworkTest.test_del_errorzacme.client.requestscCsTtj|_tjj|j_t�tjj��|j�dd�Wd�n1sF0YdS)Nr�r)	�requests�
exceptions�RequestExceptionr�r\rQrRr(r�)rCZ
mock_requestsrErErF�test_requests_error_passthroughhsz1ClientNetworkTest.test_requests_error_passthroughc
Csbz|j�dd�WnJty6}zWYd}~n0d}~0tjjy\}zWYd}~n
d}~00dS)Nr�z&http://localhost:19123/nonexistent.txt)r(r�r�rr�ConnectionError)rC�y�zrErErF�test_urllib_errorpsz#ClientNetworkTest.test_urllib_error)N)r�r�r�r�rGr�r�r�r�r�r�r�r�rr[r�r�r�r�r�r�r�r�r�r�r�rrrrErErErFr��s8		





	


r�c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S)!�#ClientNetworkWithMockedResponseTestz<Tests for acme.client.ClientNetwork which mock out response.cs�tddd��_tjdtjd��_i�j_i�j_d�j_	tjdtj
d��_i�j_t���_t���_
tjj�_t�d�t�d�t�d�g�_�jdd��_�fdd	�}tj|d
��j_�_�j�j_tj�j
d��j_dS)N)rr�Tr�FsNoncesNonce2sNonce3csX|d}|d}|dkr(|dkr(�j}n�j}�jrN�jj�j����i|_ni|_|S)Nrr!r��
new_nonce_uri)�acmev1_nonce_responser'�available_noncesr(ZREPLAY_NONCE_HEADER�pop�decoder)�args�kwargs�methodrr'rMrErF�send_request�s�z?ClientNetworkWithMockedResponseTest.setUp.<locals>.send_request)r\rk)r
r(rr$r%r&r'rr�checkedr�r�objZwrapped_objr�r�r1�	b64encode�
all_noncesrr�r�check_responser�r�)rCrrErMrFrG�s,�


��
z)ClientNetworkWithMockedResponseTest.setUpcCsd|j_|jS)NT)r'r)rCr'r�rErErFr�sz2ClientNetworkWithMockedResponseTest.check_responsecCs|jjddddd�dS)Nr�r�r_r��r��rrqrMrErErF�	test_head�s�z-ClientNetworkWithMockedResponseTest.test_headcCs|jjddddd�dS)Nr�r
r_r�rrrMrErErF�test_head_v2�s�z0ClientNetworkWithMockedResponseTest.test_head_v2cCs|jjdddd�dS)Nr�r�r�rrrMrErErF�test_get�s�z,ClientNetworkWithMockedResponseTest.test_getcCs|jj|_dSr�)r(ZJOSE_CONTENT_TYPEr�rMrErErF�test_post_no_content_type�s
z=ClientNetworkWithMockedResponseTest.test_post_no_content_typecCs�|jj�|jt�|j���d�g|_t	�
tj��&|jj
d|j|jd�Wd�n1s^0Y|jj�|jt�|j���d�dS)Nrr�)r(r�rqrr1r2rr
rrQrRrZMissingNoncer)r�r�rMrErErF�	test_post�s�4�z-ClientNetworkWithMockedResponseTest.test_postcCsVdt�d�g|_t�tj��&|jjd|j	|j
d�Wd�n1sH0YdS)N�f�goodrr��r1rrrQrRrZBadNoncer(r)rr�rMrErErF�test_post_wrong_initial_nonce�s
�zAClientNetworkWithMockedResponseTest.test_post_wrong_initial_noncecCsVt�d�dg|_t�tj��&|jjd|j	|j
d�Wd�n1sH0YdS)Nr rrr�r!rMrErErF�#test_post_wrong_post_response_nonce�s
�zGClientNetworkWithMockedResponseTest.test_post_wrong_post_response_noncecCsdt��}tj�d�|_||j_t�	tj��&|jj
d|j|jd�Wd�n1sV0YdS)N�badNoncerr�)
rr$rr}r~r\r(r�rQrRr)rr��rCrrErErF�test_post_failed_retry�s�z:ClientNetworkWithMockedResponseTest.test_post_failed_retrycCsjt��}tj�d�|jg|_||j_t	�
tj��&|jjd|j|j
d�Wd�n1s\0YdS)NZ	malformedrr�)rr$rr}r~r'r\r(r�rQrRr)rr�r%rErErF�test_post_not_retried�s
��z9ClientNetworkWithMockedResponseTest.test_post_not_retriedcCs t��}tj�d�|jg|_dS)Nr$)rr$rr}r~r'r\)rCZ	post_oncerErErF�test_post_successful_retry�s

�z>ClientNetworkWithMockedResponseTest.test_post_successful_retryc	Cs�tjj|j_|jj|jjfD]<}t�	tjj��|dd�Wd�q1sN0Yqt�	tjj��"|jj
d|jd�Wd�n1s�0YdS)Nr�r)r)rrrrr\r(�headr+rQrRr)r)rCrrErErF�$test_head_get_post_error_passthroughs*zHClientNetworkWithMockedResponseTest.test_head_get_post_error_passthroughcCs�tjdtjd�}t��|j_||jj_d|_t��}||j_t	�
tj��(|jj
d|j|jdd�Wd�n1sv0YdS)NFr�rr
�r�r�)rr$r%ZSERVICE_UNAVAILABLEr(r�r*r�r�rQrRrrdr)r)rCZbad_responserrErErF�test_post_bad_nonce_heads
�$z<ClientNetworkWithMockedResponseTest.test_post_bad_nonce_headcCs d|_|jjd|jddd�dS)Nrr
r+)r�r(r)rrMrErErF�test_new_nonce_uri_removedsz>ClientNetworkWithMockedResponseTest.test_new_nonce_uri_removedN)r�r�r�r�rGrrrrrrr"r#r&r'r(r*r,r-rErErErFr	�s +
	r	�__main__r!)1r�rYrlZhttp.clientr:r%rL�sys�typingrZunittestrZjosepyr1rQrZacmerrrr�rZacme._internal.testsrr	Zacme.clientr
rZload_vectorr�r@rBZJWKRSA�loadr,r�r�r8ZTestCaserZJSONDeSerializabler�r�r	r��exit�main�argv�__file__rErErErF�<module>sP


�	j
e#

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