KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /lib/python3/dist-packages/certbot/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/certbot/tests/__pycache__/storage_test.cpython-38.pyc
U

�]���@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mmZ
ddl	mZddlmZddlmZddlmZe
�d�Zdd	�Zd
d�ZGdd
�d
ej�ZGdd�de
j�ZGdd�de�ZGdd�de�ZGdd�de�Zedk�re� �dS)�Tests for certbot.storage.�N)�errors)�os)�
filesystem)�ALL_FOUR�cert_512.pemcCstD]}t�t||��qdS)z9Unlink all four items associated with this RenewableCert.N)rr�unlink�getattr)�	rc_object�kind�r�</usr/lib/python3/dist-packages/certbot/tests/storage_test.py�
unlink_allsrc
Cs4tD]*}tt||�d��}|�|�W5QRXqdS)z9Put dummy data into all four files of this RenewableCert.�wN)r�openr	�write)r
r�frrr
�fill_with_sample_datasrc@s`eZdZdZdd�Zdd�Ze�d�e�d�dd	���Ze�d�d
d��Z	e�d�dd
��Z
dS)�RelevantValuesTestz*Tests for certbot.storage.relevant_values.cCsddi|_dS)N�server�example.org)�values��selfrrr
�setUp'szRelevantValuesTest.setUpcOsddlm}|||�S)Nr)�relevant_values)�certbot.storager)r�args�kwargsrrrr
�_call*szRelevantValuesTest._callzcertbot.cli.option_was_setz.certbot.plugins.disco.PluginsRegistry.find_allcCs6dg|_d|_d|jd<|�|�|j���|j�dS)Nzcertbot-foo:barT�*zcertbot_foo:bar_baz)�return_valuer�assertEqualr�copy)rZ
mock_find_all�mock_option_was_setrrr
�test_namespace.s
�z!RelevantValuesTest.test_namespacecCsPd|_d|jd<d|jd<d|jd<|j��}d|jd<|�|�|j�|�dS)	NTZallow_subset_of_namesZapacheZ
authenticatori9�rsa_key_sizeZthereZhello�r!rr#r"r�rr$Zexpected_relevant_valuesrrr
�test_option_set8s




z"RelevantValuesTest.test_option_setcCs2d|_|j��}d|jd<|�|�|j�|�dS)NFir&r'r(rrr
�test_option_unsetDs

z$RelevantValuesTest.test_option_unsetN)�__name__�
__module__�__qualname__�__doc__rr�mock�patchr%r)r*rrrr
r$s
rcs2eZdZdZ�fdd�Zd	dd�Zdd�Z�ZS)
�BaseRenewableCertTestz�Base class for setting up Renewable Cert tests.

    .. note:: It may be required to write out self.config for
    your test.  Check :class:`.cli_test.DuplicateCertTest` for an example.

    c	s^ddlm}tt|���t�tj�	|j
jdd��tj�	|j
jdd�}t�|�t�tj�	|j
jd��t�
�}tD]&}tj�	|j
jdd|d�}|||<qvttj�	|j
jddd�d	��W5QRX||d<tj�	|j
jdd
�|_|��||_ttj�	|j
jdd�d��}|�d
�W5QRXt�
�|_t�d��}d|_|�|j|j
�|_W5QRXdS)Nr��storage�liver�archiveZrenewal�.pem�README�a�example.org.confzIGNORE.THISrzThis file should be ignored!z-certbot.storage.RenewableCert._check_symlinksT)�certbotr3�superr1rr�makedirsr�path�join�config�
config_dir�	configobj�	ConfigObjrr�filenamer�config_file�defaultsr/r0r!�
RenewableCert�test_rc)rr3�archive_pathrDr�	kind_pathZjunkZcheck��	__class__rr
rVs<
�
��
�
zBaseRenewableCertTest.setUpNcCs�t|j|�}tj�|�r"t�|�t�tj�tjjtjjddd�	||��|�t
|d��"}|�|dkrp|�d�n|�W5QRX|dkr�t
�|d�dS)Nr5rz
{0}{1}.pem�wb�ascii�privkey�)r	rGrr=�lexistsr�symlinkr>�pardir�formatrr�encoder�chmod)rr�ver�value�linkrrrr
�_write_out_kind|s

��&z%BaseRenewableCertTest._write_out_kindcCs&tD]}|�|d�|�|d�qdS)N��)rrY�rrrrr
�_write_out_ex_kinds�sz)BaseRenewableCertTest._write_out_ex_kinds)N)r+r,r-r.rrYr]�
__classcell__rrrJr
r1Ns&
r1c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
e�d�dd��Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Ze�d'�e�d(�d)d*���Zd+d,�Ze�d'�e�d-�d.d/���Ze�d0�d1d2��Ze�d3�e�d0�d4d5���Ze�d0�e�d6�d7d8���Ze�d0�d9d:��Z e�d0�d;d<��Z!e�d=�d>d?��Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dNS)O�RenewableCertTestsrcCsH|�|jjd�tD].}|�t|j|�tj�|jj	dd|d��qdS)Nrr4r6)
r"rG�lineagenamerr	rr=r>r?r@r\rrr
�test_initialization�s
��z&RenewableCertTests.test_initializationc	Csxddlm}tj�|jjd�}t|d��}|�d�W5QRX|�	t
j|j||j�t�
|�|�	t
j|jd|j�dS)z�Test that the RenewableCert constructor will complain if
        the renewal configuration file doesn't end in ".conf"

        rr2zbroken.confrz[No closing bracket for you!ZfunN)r:r3rr=r>r?r@rr�assertRaisesr�CertStorageErrorrFr)rr3Zbrokenrrrr
�test_renewal_bad_config�s�
�z*RenewableCertTests.test_renewal_bad_configcCsdddlm}t��}d|d<d|d<d|d<tj�|jjd	�|_	|�
�|�tj
|j|j	|j�d
S)z�Test that the RenewableCert constructor will complain if
        the renewal configuration file is missing a required file element.rr2zimaginary_cert.pem�certzimaginary_chain.pem�chainzimaginary_fullchain.pem�	fullchainzimaginary_config.confN)r:r3rArBrr=r>r?r@rCrrbrrcrF)rr3r?rrr
�test_renewal_incomplete_config�s�z1RenewableCertTests.test_renewal_incomplete_configc	Cs^ddlm}|��|�d|jk�t�d��}|�|jj|j	�W5QRX|�
|jj�dS)Nrr2�version�certbot.storage.logger)
r:r3r]�
assertTruerDr/r0rFrCr?�assertFalse�warning�called�rr3�mock_loggerrrr
�test_no_renewal_version�sz*RenewableCertTests.test_no_renewal_versionc	Cs|ddlm}|��d|jd<|j��t�d��}|�|jj|j	�W5QRX|�
|jj�|�
d|jj
ddk�dS)Nrr2z99.99.99rirj)r:r3r]rDrr/r0rFrCr?rk�infornZ	call_argsrorrr
�test_renewal_newer_version�s

z-RenewableCertTests.test_renewal_newer_versioncCs�|jj}d|j_|�|j���||j_|�|j���t|j�|�|j���t|j�tD]&}t�tj	�
d|d�t|j|��q`|�|j���t|j�tD]*}t�tj	�
|jj
|d�t|j|��q�|�|j���t|j�tD],}t�tj	�
dddd|d�t|j|��q�|�|j���t|j�|�|j���t�|jj�t�tj	�
ddddd�|jj�t|jjd��}|�d�W5QRX|�|j���dS)	Nz
relative/path�..z17.pemr5rzfullchain_17.pemrzwrongly-named fullchain)rGrerl�_consistentrrrrrQr=r>r	r?r@rkrrgrr)rZoldcertrrrrr
�test_consistent�sL


�

�
�
�
��z"RenewableCertTests.test_consistentcCs�|�dd�|�tj�|j�d�tj�|jj	ddd���t�
|jj�t�tj�|jj	ddd�|jj�t
|jjd��}|�d�W5QRX|�tj�|j�d�tj�|jj	ddd���dS)Nre�r5rz
cert17.pemr)rYrkrr=�samefilerG�current_targetr>r?r@rrerQrr)rrrrr
�test_current_target�s*������z&RenewableCertTests.test_current_targetc	Cs\dD]}|�d|�qt�|jj�t�tj�ddddd�|jj�|�|j�	d�d�dS)N)���
�rertr5rz
cert10.pemr})
rYrrrGrerQr=r>r"�current_version)rrVrrr
�test_current_versions��z'RenewableCertTests.test_current_versioncCs|�|j�d�d�dS)Nre)r"rGrrrrr
�test_no_current_versionsz*RenewableCertTests.test_no_current_versioncCs�tj�dd�D]}tD]}|�||�qq|�|j��d�|�|j��d�|�dd�|�|j��d�|�|j��d�|�dd�|�dd�|�|j��d�tD]}|�|d	�q�|�|j��d	�|�|j��d
�dS)Nr{�r|rN��rergrw�)	�six�moves�rangerrYr"rG�latest_common_versionZnext_free_version�rrVrrrr
�test_latest_and_next_versionssz0RenewableCertTests.test_latest_and_next_versionsrjcCs�t��}|j_t��}|j_t��|j_d|_|�|j��d�|�|j	d�|�|j
j	d�d|_|�|j��d�|�|j	d�|�|j
j	d�dS)NFTrr{)r/ZMockrG�update_all_links_to�has_pending_deploymentr�r!r"Zensure_deployedZ
call_countrm)rrpZmock_updateZmock_has_pendingrrr
�test_ensure_deployed*sz'RenewableCertTests.test_ensure_deployedcCs�tj�dd�D].}tD]$}|�||�|�||j�|��qq|j�dd�|j�dd�|�d|j�d��|�d|j�d��|�d|j�d��|�d|j�d	��|j�dd
�|�t	j
�t	�|jj
��d�dS)Nr{r�re�rN�r|rfrgi�z
chain3000.pem)r�r�r�rrYr"rGr�_update_link_torr=�basename�readlinkrfr�rrr
�test_update_link_to;s�z&RenewableCertTests.test_update_link_toc	Cs.|�dd�|�dtj�|j�dd���dS)NrerZz	cert8.pemr�)rYr"rr=r�rGrirrrr
�test_versionNs�zRenewableCertTests.test_versioncCs�tj�dd�D].}tD]$}|�||�|�||j�|��qq|�|j��d�tj�dd�D]@}|j�	|�tD]}|�||j�|��qr|�|j��d�q^dS�Nr{r�r|)
r�r�r�rrYr"rGrr�r�r�rrr
� test_update_all_links_to_successVsz3RenewableCertTests.test_update_all_links_to_successc	Csftjfdd�}|��t�d��}||_|�t|jj	d�W5QRXt
D]}|�|j�|�d�qHdS)NcSs0tj�|�}d|kr$|�d�r$t�n||�dS)Nrg�prev)rr=r��
startswith�
ValueError)r=�real_unlinkr�rrr
�unlink_or_raisecszTRenewableCertTests.test_update_all_links_to_partial_failure.<locals>.unlink_or_raise�certbot.storage.os.unlinkrZ�
rrr]r/r0�side_effectrbr�rGr�rr"r�rr�Zmock_unlinkrrrr
�(test_update_all_links_to_partial_failurebsz;RenewableCertTests.test_update_all_links_to_partial_failurec	Csftjfdd�}|��t�d��}||_|�t|jj	d�W5QRXt
D]}|�|j�|�d�qHdS)NcSs"dtj�|�krt�n||�dS)Nrg)rr=r�r�)r=r�rrr
r�tszQRenewableCertTests.test_update_all_links_to_full_failure.<locals>.unlink_or_raiser�rZr[r�r�rrr
�%test_update_all_links_to_full_failuressz8RenewableCertTests.test_update_all_links_to_full_failurecCs�tj�dd�D].}tD]$}|�||�|�||j�|��qqtj�dd�D]X}|j�|�tD]}|�||j�|��q`|dkr�|�	|j�
��qL|�|j�
��qLdSr�)r�r�r�rrYr"rGrr�rkr�rlr�rrr
�test_has_pending_deployment�sz.RenewableCertTests.test_has_pending_deploymentcCs�|�ddt�d��|�|j��ddg�|�ddt�d��|�|j�d�ddg�|�ddt�d��|�|j�d�dgd	d
�dD��t�|jj�|�	t
j|jj�dS)NrerZzcert-san_512.pem�example.comzwww.example.com�rzcert-5sans_512.pemcSsg|]}d�|��qS)z{0}.example.com)rS)�.0�crrr
�
<listcomp>�sz1RenewableCertTests.test_names.<locals>.<listcomp>Zabcd)rY�	test_util�load_vectorr"rG�namesrrrerbrrcrrrr
�
test_names�s&���
�zRenewableCertTests.test_nameszcertbot.storage.clizcertbot.storage.datetimec		Cs�t�d�}|��|j�d�t|jjd��}|�|�W5QRX|j�d�t|jjd��}|�|�W5QRXtj	|_	d|j
_i|jjd<dD]J\}}}tj�
|�}||jj_||jjd<||jjd	<|�|j��|�q�d
S)z<Test should_autorenew() on the basis of expiry time windows.rrZrLr[F�
renewalparams))�@*�Tz2 monthsT)r�z1 weekT)r�z4 daysF)r��2 daysF)�@�Iz7 yearsT)r�z11 years 2 monthsT)r�z8 hoursF)r�r�F)r�z40 daysF)r�z9 monthsF)���Tz	0 secondsT)r�z
10 secondsT)r�z
10 minutesT)r�z10 weeksT)r�z	10 monthsT)r�z10 yearsT)r�z	99 monthsTZdeploy_before_expiryZrenew_before_expiryN)r�r�r]rGr�rrer�datetime�	timedelta�
set_by_clir!�
configurationZutcfromtimestampZutcnowr"�should_autorenew)	rZ
mock_datetime�mock_cliZ	test_certrZcurrent_time�interval�resultZsometimerrr
�test_time_interval_judgments�s"

z/RenewableCertTests.test_time_interval_judgmentscCs`i|jjd<|�|j���d|jjdd<|�|j���d|jjdd<|�|j���dS)Nr��True�	autorenew�False)rGr�rkZautorenewal_is_enabledrlrrrr
�test_autorenewal_is_enabled�sz.RenewableCertTests.test_autorenewal_is_enabledz*certbot.storage.RenewableCert.ocsp_revokedcCsnd|j_ddi|jjd<|�|j���d|jjdd<tD]}|�|d�q<d|_|�|j���d|_dS)	zTTest should_autorenew on the basis of reasons other than
        expiry time window.Fr�r�r�r�rZTN)	r�r!rGr�rlr�rrYrk)rZ	mock_ocspr�rrrr
�test_should_autorenew�sz(RenewableCertTests.test_should_autorenewzcertbot.storage.relevant_valuescCs*dd�|_tj�dd�D]}tD]}|�||�q q|j�d�|�d|j�	dddd|j
��t|j�dd���}|�|�
�d	�W5QRXt|j�d
d���}|�|�
�d�W5QRXt|j�dd���}|�|�
�d
�W5QRX|�tj�|j�dd���|�tj�|j�dd���|�d|j�	dddd|j
��|�d|j�	dddd|j
��dD]F}|�tj�|j�d|���|�dtj�t�|j�d|�����q`tD]<}|�|j�|�ttj�dd���|�|j�|�d��q�|j�d�|�d|j�	dddd|j
��tD]<}|�|j�|�ttj�dd���|�|j�|�d��qt|j�dd���}|�|�
�d�W5QRXtj�|j
j|jj�d}t|d��}|�d�W5QRX|�d|j�	ddd d!|j
��|�tj�|j�dd���|�tj�|j�dd���|�tj�|��dS)"NcSs|S�Nr��xrrr
�<lambda>��z8RenewableCertTests.test_save_successor.<locals>.<lambda>r{r�r�snew cert�	new chainreznew certrfz	new chainrgznew certnew chainrNr�sagainsnewer chainr�shellosother chain)r�r�r�zprivkey3.pem�	slastsattemptr}Zlastattemptz	.conf.newrz)We previously crashed while writing me :(swith�askey)r�r�r�r�rrYrGr�r"�save_successorr?rri�readrlrr=�islinkrkr�r��available_versions�listrr>�renewal_configs_dirr`r�exists)r�mock_rvrVrr�iZtemp_config_filerrr
�test_save_successor�s�
�������"�������z&RenewableCertTests.test_save_successorz:Group/everybody permissions are not maintained on Windows.cCsdd�|_tD]}|�|d�q|j�d�|�t�|j�dd�d��t�	|j�dd�d�|j�
dddd|j�|�t�|j�dd	�d��|j�
d	dd
d|j�|�t�|j�dd�d��t�	|j�dd�d
�|j�
ddd
d|j�|�t�|j�dd�d��dS)NcSs|Sr�rr�rrr
r�7r�zMRenewableCertTests.test_save_successor_maintains_group_mode.<locals>.<lambda>r{rNrOi$�newcertr�r��new_privkeyr�i���)r�rrYrGr�rkr�
check_moderirUr�r?)rr�rrrr
�(test_save_successor_maintains_group_mode2s
z;RenewableCertTests.test_save_successor_maintains_group_modez8certbot.storage.filesystem.copy_ownership_and_apply_modecCstdd�|_tD]}|�|d�q|j�d�|j�dddd|j�|�|j�|j�dddd|j�|�	|j�dS)NcSs|Sr�rr�rrr
r�Mr�zFRenewableCertTests.test_save_successor_maintains_gid.<locals>.<lambda>r{r�r�r�r�)
r�rrYrGr�r�r?rlrnrk)rZmock_ownershipr�rrrr
�!test_save_successor_maintains_gidHs
z4RenewableCertTests.test_save_successor_maintains_gidc	Cs�dd�|_ddlm}|j�dddd|j�}|�|���|�tj	�
tj	�|jjd	���|�tj	�
tj	�|jj
d
���|�tj	�
tj	�|jj
dd
���|�t�|jd��t|jd��}|�|��d
�W5QRX|j�dddd|j�}|�tj	�
tj	�|jjd���|�tj	�
tj	�|jj
dd
���t�tj	�|jj
d��|�tj|jjdddd|j�t�tj	�|jjd��|�tj|jjdddd|j�|j�dddd|j�}dS)z$Test for new_lineage() class method.cSs|Sr�rr�rrr
r�[r�z5RenewableCertTests.test_new_lineage.<locals>.<lambda>rr2�the-lineage.comscertsprivkeyschain�the-lineage.com.confr7rO�rbs	certchain�cert2�privkey2�chain2zthe-lineage.com-0001.confzthe-lineage.com-0001zthe-lineage.com-0002scert3sprivkey3schain3zother-example.comscert4sprivkey4schain4N)r�r:r3rF�new_lineager?rkrurr=r�r>r��live_dirrr�Zkey_pathrrgr"r��mkdirrbrrc�default_archive_dir)rr�r3r�rrrr
�test_new_lineageVs�
�������
����z#RenewableCertTests.test_new_lineagec	Cs�dd�|_ddlm}t�|jj�t�|jj�t�|jj�|j	�
dddd|j�|�tj
�tj
�|jjd	���|�tj
�tj
�|jjdd
���|�tj
�tj
�|jjdd���dS)
z9Test that directories can be created if they don't exist.cSs|Sr�rr�rrr
r��r�zFRenewableCertTests.test_new_lineage_nonexistent_dirs.<locals>.<lambda>rr2r�r�r�r�r�zprivkey.pemzprivkey1.pemN)r�r:r3�shutilZrmtreer?r�r�r�rFr�rkrr=r�r>)rr�r3rrr
�!test_new_lineage_nonexistent_dirs�s8
�
����z4RenewableCertTests.test_new_lineage_nonexistent_dirsz(certbot.storage.util.unique_lineage_namec	Cs4ddlm}d|_|�tj|jjdddd|j�dS)Nrr2)Zthis_does_not_end_with_dot_confZyikesr�rerNrf)	r:r3r!rbrrcrFr�r?)rZmock_ulnr3rrr
�test_invalid_config_filename�s�z/RenewableCertTests.test_invalid_config_filenamecCs�|�tj|jjd�|�tj|jjd�|�tj|jjdd�|�tj|jjd�|�tj|jjd�|�tj|jj	dd�dS)NZelephantrw)
rbrrcrGryrrir�Znewest_available_versionr�rrrr
�
test_bad_kind�s@������z RenewableCertTests.test_bad_kindcCs|�|j���dSr�)rlrGZocsp_revokedrrrr
�test_ocsp_revoked�sz$RenewableCertTests.test_ocsp_revokedc
)Cs�ddlm}tj�t�dddddd��}tj�t�dd	d
ddd��}t�d
��t�dd	dddd��}|df||df||df||df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|df|t�d�|d f|t�d�|d f|t�d!�|d"f|t�d#�|d"f|t�d#�i}|��D]&\}}|\}}	|�	|�
||	�|��q�dS)$Nrr2i�r[r~�;�i�r}r���z
Asia/Shanghaii�����)�z17 daysrwZ30�z7 weeks�1z1 monthz1 yearinimz1 year 1 dayioz1 year-1 dayilz4 yearsi�)r:r3�pytzZUTCZfromutcr��timezoner��itemsr"Zadd_time_interval)
rr3Ztime_1Ztime_2Ztime_3ZintendedZ
parametersZexceptedZ	base_timer�rrr
�test_add_time_interval�sd
���z)RenewableCertTests.test_add_time_intervalcCs�i|jjd<|jjd}|�|jjd�d|d<|�|jjd�d|d<|�|jjd�d|d<|�|jjd�d|d<|�|jjd�dS)	Nr�Fz6https://acme-staging-v02.api.letsencrypt.org/directoryrTz)https://staging.someotherca.com/directoryz.https://acme-v01.api.letsencrypt.org/directoryz.https://acme-v02.api.letsencrypt.org/directory)rGr�r"Zis_test_cert)rZrprrr
�test_is_test_cert�sz$RenewableCertTests.test_is_test_certcCsZddlm}|�tj|j|jj|j�t	�
d|jtd�|�tj|j|jj|j�dS)Nrr2Zmissing)r:r3rbrrcrFrDrCr?rrQr�rr3rrr
�test_missing_cert�s��z$RenewableCertTests.test_missing_certc
	Cstj�|jjd�}tj�|jjd�}t|d��}|�d�W5QRXt�|d�i}t	D]}d||<qXd}dd	i}d
dl
m}|�|||||�t|d��}|�
�}	W5QRX|�d
|	k�|�d|	k�|�d|	k�|�d�t
j�|	k�|�t�t�|�j�t�t�|�j��dS)Nzsample-filezsample-file.newrzM[renewalparams]
useful = value # A useful value
useless = value # Not needed
i�Z	somewhereZthe_archiveZusefulZ	new_valuerr2�rzuseful = new_valuezA useful valueZuselessz
version = {0})rr=r>r?r@rrrrUrr:r3Zwrite_renewal_configr�rkrS�__version__r"�stat�S_IMODE�lstat�st_mode)
rZtempZtemp2r�targetr��archive_dirZ
relevant_datar3Zcontentrrr
�test_write_renewal_config�s*
�z,RenewableCertTests.test_write_renewal_configcCs�ddlm}tj�|jjdd�}tD]L}|j|}|d}tj�||�}t	|d��
�t�tj�|jj|�|�q$|�t
j|j|jj|j�|j|jj|jdd�dS)	Nrr2r5rz1.pemr8T)Zupdate_symlinks)r:r3rr=r>r?r@rrDr�closerQrbrrcrFrC)rr3Zarchive_dir_pathrZ	live_pathr�rHrrr
�test_update_symlinkss 
��z'RenewableCertTests.test_update_symlinksN)*r+r,r-r.rardrhrqrsrvrzr�r�r�r/r0r�r�r�r�r�r�r�r�r�r�r�r�r�Zskip_on_windowsr�r�r�r�r�r�r�r�r�r�rrrrrr
r_�s`
*
,	
>
.

*

!r_cs`eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Z�Z
S)�DeleteFilesTestz&Tests for certbot.storage.delete_filesc
s�tt|���tD]4}tj�|jjdd|d�}t	|d��W5QRXq|j
��|�tj�
tj�|jjd���|�tj�
tj�|jjd���|�tj�
tj�|jjdd���dS)Nr4rr6r8r9r5)r;rrrrr=r>r?r@rrDrrkr�r�r�)rrrIrJrr
r-s*�
���zDeleteFilesTest.setUpc	Cs4ddlm}t�d��|�|jd�W5QRXdS)Nrr2rjr)r:r3r/r0Zdelete_filesr?r�rrr
r=szDeleteFilesTest._callc	Csn|��|�tj�tj�|jjd���|�tj�tj�|jjd���|�tj�tj�|jj	dd���dS)Nr9rr5)
rrlrr=r�r>r?r�r�r@rrrr
�test_delete_all_filesBs���z%DeleteFilesTest.test_delete_all_filesc	Csxt|jjd��}|�d�W5QRX|�tj|j�|�t	j
�t	j
�|j
jd���|�t	j
�t	j
�|j
jd���dS)Nr8Zasdfasfasdfasdfrr9)rrDrCrrbrrcrrkrr=r�r>r?r�rlr�)rrDrrr
�test_bad_renewal_configLs��z'DeleteFilesTest.test_bad_renewal_configcCsXt�|jj�|�tj|j�|�tj	�
tj	�|jj
d���|�tj	�
|jj��dS)Nr)r�removerDrCrbrrcrrkr=r�r>r?r�rlrrrr
�test_no_renewal_configVs�z&DeleteFilesTest.test_no_renewal_configc	Cs~t�tj�|jjdd��|��|�tj�|j	j
��|�tj�tj�|jjd���|�tj�tj�|jjdd���dS)Nrzcert.pemr5�rr	r=r>r?r�rrlr�rDrCr@rrrr
�test_no_cert_file]s 
���z!DeleteFilesTest.test_no_cert_filec	Cs~t�tj�|jjdd��|��|�tj�|j	j
��|�tj�tj�|jjd���|�tj�tj�|jjdd���dS)Nrr7r5rrrrr
�test_no_readme_filegs 
���z#DeleteFilesTest.test_no_readme_filec	Cs�ttj�|jjdd�d��W5QRX|��|�tj�|j	j
��|�tj�tj�|jjd���|�tj�tj�|jjdd���dS)NrZ
other_filer8r5)
rrr=r>r?r�rrlr�rDrCrkr@rrrr
�test_livedir_not_emptyqs&��
��z&DeleteFilesTest.test_livedir_not_emptycCsrtj�|jjdd�}t�|�|��|�tj�|j	j
��|�tj�tj�|jjd���|�tj�|��dS)Nr5r)rr=r>r?r@�rmdirrrlr�rDrCr�)rrrrr
�test_no_archive|s
�zDeleteFilesTest.test_no_archive)r+r,r-r.rrrrr
rr
rrr^rrrJr
r+s



rcs8eZdZdZ�fdd�Zdd�Zdd�Zdd	�Z�ZS)
�CertPathForCertNameTestz0Test for certbot.storage.cert_path_for_cert_namecsJtt|���|j��|��tj�|j	j
ddd�|_|jdf|j	_dS)Nr4rz
fullchain.pemr�)
r;rrrDrr]rr=r>r?r@rgZ	cert_pathrrJrr
r�s
�zCertPathForCertNameTest.setUpcCsddlm}|||�S)Nr)�cert_path_for_cert_name)rr)rZ
cli_configZcertnamerrrr
r�szCertPathForCertNameTest._callcCs |�|�|jd�|jdf�dS)Nrrg)r"rr?rgrrrr
�test_simple_cert_name�sz-CertPathForCertNameTest.test_simple_cert_namecCs|�tj|j|jd�dS)Nzfake-example.org)rbrrcrr?rrrr
�test_no_such_cert_name�sz.CertPathForCertNameTest.test_no_such_cert_name)	r+r,r-r.rrrrr^rrrJr
r�s
r�__main__)!r.r�r�r�ZunittestrAr/r�r�r:Zcertbot.tests.utilZtests�utilr�rZcertbot.compatrrrrZ	load_certZCERTrrZTestCaserZConfigTestCaser1r_rrr+�mainrrrr
�<module>s:
*@"Z


Anon7 - 2021