Your IP : 216.73.216.172


Current Path : /lib/python3/dist-packages/certbot/tests/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/certbot/tests/__pycache__/cert_manager_test.cpython-38.pyc

U

�]�p�@svdZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddl
mZddl
mZddlmZdd	lmZddlmZGd
d�dej�ZGdd
�d
e�ZGdd�dej�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�dej�Z Gdd�dej�Z!Gd d!�d!ej"�Z#e$d"k�rre�%�dS)#�Tests for certbot.cert_manager.�N)�
configuration)�errors)�os)�
filesystem)�util)�ALL_FOUR)�storage_testcs(eZdZdZ�fdd�Zdd�Z�ZS)�BaseCertManagerTestz2Base class for setting up Cert Manager tests.
    c	s�tt����d�j_t��jj�dtj	�
�jjd�d��_t
�fdd��jD���_ttj	�
�jjd�d��}|�d�W5QRXdS)	NFZspecialarchive)�example.org�	other.comc3s$|]}|��|�j|�fVqdS�N)�_set_up_config�domains)�.0�domain��self��A/usr/lib/python3/dist-packages/certbot/tests/cert_manager_test.py�	<genexpr>#s�z,BaseCertManagerTest.setUp.<locals>.<genexpr>zIGNORE.THIS�wzThis file should be ignored!)�superr
�setUp�config�quietr�makedirs�renewal_configs_dirr�path�join�
config_dirr�dict�config_files�open�write)rZjunk��	__class__rrrs��
zBaseCertManagerTest.setUpcCs�t�tj�|jj|��t��}|dk	r<t�|�||d<nt�tj�|jj	|��t
D] }tj�|jj||d�||<qXtj�|jj|d�|_|�
�|S)NZarchive_dirz.pemz.conf)rrrrrrZlive_dir�	configobjZ	ConfigObj�default_archive_dirrr�filenamer$)rr�custom_archive�config_file�kindrrrr,s

�
�z"BaseCertManagerTest._set_up_config)�__name__�
__module__�__qualname__�__doc__rr�
__classcell__rrr%rr
sr
c@seZdZdZdd�ZdS)�UpdateLiveSymlinksTestz8Tests for certbot.cert_manager.update_live_symlinks
    c	
s<ddlm}i}|jD]�}|j|}|dk	r2|�ntj�|jj|��t�fdd�t	D��||<t	D]J}|j
||}|||}t|d���t�
tj�|jj|d�|�qbq|�|j�t��}zf|jD]Z}t	D]P}t�tj�|j
||��|�t�t�|j
||��t�|||��q�q�W5t�|�XdS)zTest update_live_symlinksr��cert_managerNc3s$|]}|tj��|d�fVqdS)�1.pemN)rrr)rr,�Zarchive_dir_pathrrrQs��zCUpdateLiveSymlinksTest.test_update_live_symlinks.<locals>.<genexpr>�ar5)�certbotr4rrrrrr(r!rr"r#�close�symlinkr Zupdate_live_symlinks�getcwd�chdir�dirname�assertEqualr�realpath�readlink)	rr4Z
archive_pathsrr*r,Z	live_pathZarchive_pathZprev_dirrr6r�test_update_live_symlinksEs4

�"
�z0UpdateLiveSymlinksTest.test_update_live_symlinksN)r-r.r/r0rArrrrr2Bsr2c@s�eZdZdZdd�Ze��e�d�e�d�dd����Z	e��e�d�e�d�dd	����Z
e��e�d�e�d�d
d����ZdS)
�
DeleteTestz*Tests for certbot.cert_manager.delete
    cCsddlm}|�|j�dS�Nrr3)r8r4�deleter)rr4rrr�_callnszDeleteTest._call�)certbot.cert_manager.lineage_for_certnamezcertbot.storage.delete_filescCs*|j|_d|j_|��|�|jd�dS��Test deleterN)�test_rc�return_valuer�certnamerE�assert_called_once_with)r�mock_delete_files�mock_lineage_for_certname�unused_get_utilityrrr�test_delete_from_configrsz"DeleteTest.test_delete_from_configcCs4|j|_tjdgf|�j_|��|�|jd�dSrG)rIrJ�display_util�OK�	checklistrErLr�rrMrNZ	mock_utilrrr�test_delete_interactive_single}sz)DeleteTest.test_delete_interactive_singlecCsR|j|_tjddgf|�j_|��|�|jd�|�|jd�|�|j	d�dS)rHrz	other.org�N)
rIrJrQrRrSrEZassert_any_callrr>Z
call_countrTrrr� test_delete_interactive_multiple�sz+DeleteTest.test_delete_interactive_multipleN)r-r.r/r0rE�	test_util�patch_get_utility�mock�patchrPrUrWrrrrrBjsrBc@s�eZdZdZdd�Ze�d�e��dd���Z	e�d�e��dd���Z
e�d	�e�d�e��e�d
�e�d�dd
������Ze�d�e��dd���Ze�d�dd��Z
dS)�CertificatesTestz0Tests for certbot.cert_manager.certificates
    cOsddlm}|||�S)Nr)�certificates)�certbot.cert_managerr])r�args�kwargsr]rrr�
_certificates�szCertificatesTest._certificateszcertbot.cert_manager.loggercCs*|�|j�|�|jj�|�|j�dSr
)rar�
assertTrue�warning�called�r�mock_utility�mock_loggerrrr�test_certificates_parse_fail�sz-CertificatesTest.test_certificates_parse_failcCs4d|j_|�|j�|�|jj�|�|jj�dS)NT)rrra�assertFalseZnotificationrdrbrcrerrr�test_certificates_quiet�sz(CertificatesTest.test_certificates_quietz)certbot.crypto_util.verify_renewable_cert�certbot.storage.RenewableCertz+certbot.cert_manager._report_human_readablecCsNd|_d|_|�|j�|�|jj�|�|j�|�|j�|�|j�dS)N�)rJrarrircrdrb)rZmock_report�mock_renewable_certrfrgZ
mock_verifierrrr�test_certificates_parse_success�sz0CertificatesTest.test_certificates_parse_successc	Cs|t��}t�tjtj�|d�tj�|d�tj�|d�dd��}t	�
|j�|�|�|�
|jj�|�|j�t�|�dS)NrZworkZlogsF)r Zwork_dirZlogs_dirr)�tempfileZmkdtemprZNamespaceConfigrZ�	MagicMockrrrrrrrarircrdrb�shutilZrmtree)rrfrgZ
empty_tempdirZempty_configrrr�test_certificates_no_files�s�
z+CertificatesTest.test_certificates_no_filesz8certbot.cert_manager.ocsp.RevocationChecker.ocsp_revokedcsnd|_ddlm�ddl}ddl}|j�|j���}tj	dd�}||_
ddg|j_d|_|g�tj	ddd�����fdd	�}|�}|�
d
|k�|j
|jdd�7_
|�}|�
d
|kp�d|k�|�
d|ko�d|k�|j
|jdd�7_
|�}|�
d|k�|�d|k�|�
d|k�o$d|k�|j
|jdd�7_
|�}|�
d|k�|�
d|k�ofd|k�d|_d|_|�}|�
d|k�tj	dd�}||_
ddg|j_d|_��|�|�}|�tt�d|��d�dg�_|�}|�tt�d|��d�dg�_|�}|�tt�d|��d�d�_|�}|�tt�d|��d�d�_|�}|�tt�d|��d�dS)Nrr3Znameone��lineagenameZnametwoF)rKrtcs�����Sr
)Z_report_human_readabler�r4Zmock_configZparsed_certsrr�<lambda>��z=CertificatesTest.test_report_human_readable.<locals>.<lambda>zINVALID: EXPIREDrV)Zhoursz	1 hour(s)z	2 hour(s)ZVALIDZINVALID�)Zdaysz1 dayZunderz3 daysTzINVALID: TEST_CERT, REVOKEDZ
indescribablezthrice.namedzINVALID:Zhorror)rJr8r4�datetime�pytzZUTCZfromutcZutcnowrZrpZ
target_expiry�namesZis_test_certrbZ	timedeltari�appendr>�len�re�findallrrK)rZmock_revokedryrzZexpiry�certZ
get_report�outrrur�test_report_human_readable�sd
z+CertificatesTest.test_report_human_readableN)r-r.r/r0rarZr[rXrYrhrjrnrrr�rrrrr\�s&
r\c@s6eZdZdZe�d�e�d�e�d�dd����ZdS)�SearchLineagesTestz0Tests for certbot.cert_manager._search_lineages.�certbot.util.make_or_verify_dir�"certbot.storage.renewal_conf_filesrkcCsHdg|_tj|_ddlm}|�|�|jdd�d�d�|�	|j
�dS)NZbadfilerr3cSs|Sr
r��xrrrrvrwz<SearchLineagesTest.test_cert_storage_error.<locals>.<lambda>Zcheck)rJr�CertStorageError�side_effectr8r4r>Z_search_lineagesrrbrd)rrm�mock_renewal_conf_files�mock_make_or_verify_dirr4rrr�test_cert_storage_errors
z*SearchLineagesTest.test_cert_storage_errorN)r-r.r/r0rZr[r�rrrrr�s
r�c@sneZdZdZe�d�e�d�e�d�dd����Ze�d�e�d�dd���Ze�d�e�d�d	d
���ZdS)�LineageForCertnameTestz3Tests for certbot.cert_manager.lineage_for_certnamer��)certbot.storage.renewal_file_for_certnamerkcCsJd|_tjdd�}||_ddlm}|�|�|jd�|�|�|j	�dS)N�
somefile.conf�example.comrsrr3)
rJrZ�Mockr8r4r>�lineage_for_certnamerrbrd)rrm�mock_renewal_conf_filer��
mock_matchr4rrr�test_found_match$sz'LineageForCertnameTest.test_found_matchcCs8d|_ddlm}|�|�|jd�d�|�|j�dS)Nzother.com.confrr3r�)rJr8r4r>r�rrbrd�rr�r�r4rrr�
test_no_match0sz$LineageForCertnameTest.test_no_matchcCs<t��|_ddlm}|�|�|jd�d�|�|j	�dS)Nrr3r�)
rr�r�r8r4r>r�rrbrdr�rrr�test_no_renewal_file8s
z+LineageForCertnameTest.test_no_renewal_fileN)	r-r.r/r0rZr[r�r�r�rrrrr�!s	r�c@sReZdZdZe�d�e�d�e�d�dd����Ze�d�e�d�dd���Zd	S)
�DomainsForCertnameTestz3Tests for certbot.cert_manager.domains_for_certnamer�r�rkcCsZd|_tjdd�}ddg}||j_||_ddlm}|�|�|jd�|�|�	|j
�dS)Nr�r�rsrrr3)rJrZr�r{r8r4r>�domains_for_certnamerrbrd)rrmr�r�r�rr4rrrr�Ds�z'DomainsForCertnameTest.test_found_matchcCs8d|_ddlm}|�|�|jd�d�|�|j�dS)Nr�rr3r)rJr8r4r>r�rrbrdr�rrrr�Ssz$DomainsForCertnameTest.test_no_matchN)r-r.r/r0rZr[r�r�rrrrr�Asr�cs�eZdZdZ�fdd�Zdd�Ze�d�e�	�dd���Z
e�	�d	d
��Ze�	�e�d�dd
���Ze�	�e�d�dd���Z
e�	�e�d�dd���Ze�	�e�d�dd���Z�ZS)�RenameLineageTestz-Tests for certbot.cert_manager.rename_lineagecs"tt|���d|j_d|j_dS)NrZafter)rr�rrrK�new_certnamerr%rrr_szRenameLineageTest.setUpcOsddlm}|j||�SrC)r8r4Zrename_lineage)rr_r`r4rrrrEdszRenameLineageTest._callr�cCs�d|j_d|j_g|_|�tj|j|j�dg|_|�}tj	df|j
_|�tj|j|j�tjdf|j
_|�tj|j|j�dS)N�twozone.confr���)rrKr�rJ�assertRaisesr�ErrorrErQ�CANCEL�menurR)r�mock_get_utilityr��	util_mockrrr�test_no_certnamehsz"RenameLineageTest.test_no_certnamecCs^d|j_d|j_|�}tjdf|j_|�tj	|j
|j�tjdf|j_|�tj	|j
|j�dS)N�one�name)rrKr�rQr��inputrJr�rr�rErR)rr�r�rrr�test_no_new_certnamezsz&RenameLineageTest.test_no_new_certnamerFcCs.d|j_d|j_d|_|�tj|j|j�dS)Nr�r�)rrKr�rJr�r�ConfigurationErrorrE)rrNrOrrr�test_no_existing_certname�s�z+RenameLineageTest.test_no_existing_certnamez-certbot.storage.RenewableCert._check_symlinkscCsTd|_|�|j�ddlm}|�|j|jj�}|�|dk	�|�|j	|jj�dS�NTrr3)
rJrErr8r4r�r�rbr>rt)r�
mock_checkrOr4�updated_lineagerrr�test_rename_cert�sz"RenameLineageTest.test_rename_certcCspd|_d|j_|�}tjdf|j_|�|j�ddlm}|�	|j|jj
�}|�|dk	�|�|j
|jj
�dSr�)rJrrKrQrRr�rEr8r4r�r�rbr>rt)rr�r�r�r4r�rrr�%test_rename_cert_interactive_certname�sz7RenameLineageTest.test_rename_cert_interactive_certnamecCsLd|_d|j_|�tj|j|j�d�tj	j
�|j_|�tj|j|j�dS)NTrz	one{0}two)rJrr�r�rr�rE�formatrr�sep)rr�rOrrr�!test_rename_cert_bad_new_certname�s
z3RenameLineageTest.test_rename_cert_bad_new_certname)r-r.r/r0rrErZr[rXrYr�r�r�r�r�r�r1rrr%rr�\s(
r�cs2eZdZdZ�fdd�Ze�d�dd��Z�ZS)�DuplicativeCertsTestz!Test to avoid duplicate lineages.cs$tt|���|j��|��dSr
)rr�rr+r$�_write_out_ex_kindsrr%rrr�s
zDuplicativeCertsTest.setUpr�c	Cs�ddlm}t�d�}t|jjd��}|�|�W5QRX||jddg�}|�	|d�||jdd	g�}|�
|djj�
d
��|�	|dd�||jdd	dg�}|�	|dd�|�
|djj�
d
��||jddg�}|�	|d�dS)
Nr)�find_duplicative_certszcert-san_512.pem�wbzwow.netz
hooray.org)NNr�zwww.example.comzexample.org.confrxz
something.new)r^r�rXZload_vectorr#rIr�r$rr>rbZ
configfiler)�endswith)rZunused_makedirr�Z	test_cert�f�resultrrr�test_find_duplicative_names�s4
����z0DuplicativeCertsTest.test_find_duplicative_names)	r-r.r/r0rrZr[r�r1rrr%rr��sr�cs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Ze	�
d�d
d��Ze	�
d�dd��Ze	�
d�dd��Z
e	�
d�dd��Z�ZS)�CertPathToLineageTestz3Tests for certbot.cert_manager.cert_path_to_lineagecsJtt|���|j��|��tj�|j	j
ddd�|_|jdf|j	_dS�N�liver�
fullchain.pemrl)
rr�rr+r$r�rrrrr �	fullchain�	cert_pathrr%rrr�s
�zCertPathToLineageTest.setUpcCsddlm}||�S)Nr)�cert_path_to_lineage)r^r�)r�
cli_configr�rrrrE�szCertPathToLineageTest._callcCsddlm}|||�S)Nr��_archive_files)r^r�)rr�Zfiletyper�rrrr��sz$CertPathToLineageTest._archive_filescCs|�d|�|j��dS)Nr)r>rErrrrr�test_basic_match�sz&CertPathToLineageTest.test_basic_matchcCs4|j}tj�|jjddd�|_|�tj|j	|�dS)Nr�Z
SailorMoonr�)
rrrrr r�r�rr�rE)rZbad_test_configrrr�test_no_match_exists�s�z*CertPathToLineageTest.test_no_match_existsz(certbot.cert_manager._acceptable_matchescCs.dd�g|_|j|j_|�d|�|j��dS)NcSs|jSr
)�fullchain_pathr�rrrrv�rwz>CertPathToLineageTest.test_options_fullchain.<locals>.<lambda>r)rJr�rr�r>rE�r�mock_acceptable_matchesrrr�test_options_fullchain�s
z,CertPathToLineageTest.test_options_fullchaincCsFdd�g|_tj�|jjddd�}|df|j_|�d|�|j��dS)NcSs|jSr
)r�r�rrrrv�rwz>CertPathToLineageTest.test_options_cert_path.<locals>.<lambda>r�rzcert.pemrl)	rJrrrrr r�r>rE)rr�Ztest_cert_pathrrr�test_options_cert_path�s�z,CertPathToLineageTest.test_options_cert_pathcsFtj��jjddd�df�j_�fdd�g|_��d���j��dS)N�archiverz
cert11.pemrlcs��|d�S)Nr�r�r�rrrrvrwzACertPathToLineageTest.test_options_archive_cert.<locals>.<lambda>�	rrrrr r�rJr>rEr�rrr�test_options_archive_certs��z/CertPathToLineageTest.test_options_archive_certcsFtj��jjddd�df�j_�fdd�g|_��d���j��dS)Nr�rzfullchain11.pemrlcs��|d�S)Nr�r�r�rrrrvszFCertPathToLineageTest.test_options_archive_fullchain.<locals>.<lambda>r�r�rrr�test_options_archive_fullchains��z4CertPathToLineageTest.test_options_archive_fullchain)r-r.r/r0rrEr�r�r�rZr[r�r�r�r�r1rrr%rr��s


r�csTeZdZdZ�fdd�Zdd�Zdd�Ze�d�d	d
��Z	e�d�dd��Z
�ZS)
�MatchAndCheckOverlapszUTests for certbot.cert_manager.match_and_check_overlaps w/o overlapping archive dirs.csJtt|���|j��|��tj�|j	j
ddd�|_|jdf|j	_dSr�)
rr�rr+r$r�rrrrr r�r�rr%rrrs
�zMatchAndCheckOverlaps.setUpcCsddlm}|||||�S)Nr)�match_and_check_overlaps)r^r�)rr�Zacceptable_matchesZ
match_funcZrv_funcr�rrrrEszMatchAndCheckOverlaps._callc
s:ddlm}��dg���j|��fdd�dd���dS)Nr)�_acceptable_matchesrcs�jjdS)Nr)rr�r�rrrrv&rwz8MatchAndCheckOverlaps.test_basic_match.<locals>.<lambda>cSs|jSr
rsr�rrrrv&rw)r^r�r>rEr)rr�rrrr�#s

�z&MatchAndCheckOverlaps.test_basic_matchz%certbot.cert_manager._search_lineagescCs$g|_|�tj|j|jddd�dSr
)rJr�rr�rEr�rZmock_search_lineagesrrr�test_no_matches(sz%MatchAndCheckOverlaps.test_no_matchescCs(ddg|_|�tj|j|jddd�dS)NZspiderZdance)rJr�rZOverlappingMatchFoundrErr�rrr�test_too_many_matches-s
z+MatchAndCheckOverlaps.test_too_many_matches)r-r.r/r0rrEr�rZr[r�r�r1rrr%rr�s
r�c@s�eZdZdZdd�Zdd�Ze�d�e�d�dd	���Ze�d�e�d�d
d���Z	e�d�e�d�dd
���Z
e�d�e�d�dd���Ze�d�e�d�dd���Ze�d�e�d�dd���Z
dS)�GetCertnameTestrcCs,t��|_|j��|_t��|_d|j_dSr
)	rXrY�get_utility_patch�startr�rZrprrKrrrrr6s

zGetCertnameTest.setUpcCs|j��dSr
)r��stoprrrr�tearDown<szGetCertnameTest.tearDownr�z(certbot.storage.lineagename_for_filenamecCsndg|_d|_ddlm}d}tjdf|��j_|�|j|j	ddd�dg�|�
||��jjddk�dS)	N�example.com.confr�rr3zWhich certificate would you�verbF��allow_multiple)rJr8r4rQrRr�r�r>�
get_certnamesrrb�	call_args�r�	mock_name�
mock_filesr4�promptrrr�test_get_certnames?s ���z"GetCertnameTest.test_get_certnamescCsndg|_d|_ddlm}d}tjdf|��j_|�|j|j	dd|d�dg�|�|��jj
dd|�dS)	Nr�r�rr3�
custom promptr�F�r�Z
custom_prompt)rJr8r4rQrRr�r�r>r�rr�r�rrr� test_get_certnames_custom_promptMs"���z0GetCertnameTest.test_get_certnames_custom_promptcCsJdg|_d|_ddlm}tjdf|��j_|jtj	|j
|jddd�dS)Nr�r�rr3�erroring_anywayFr�)rJr8r4rQr�r�r�r�rr�r�r�rr�r�r4rrr�test_get_certnames_user_abort\s�z-GetCertnameTest.test_get_certnames_user_abortcCspdg|_d|_ddlm}d}tjdgf|��j_|�|j|j	ddd�dg�|�
||��jjddk�dS)	Nr�r�rr3zWhich certificate(s) would your�Tr�)rJr8r4rQrRr�rSr>r�rrbr�r�rrr�!test_get_certnames_allow_multiplehs$����z1GetCertnameTest.test_get_certnames_allow_multiplecCspdg|_d|_ddlm}d}tjdgf|��j_|�|j|j	dd|d�dg�|�|��jj
dd|�dS)	Nr�r�rr3r�r�Tr�)rJr8r4rQrRr�rSr>r�rr�r�rrr�/test_get_certnames_allow_multiple_custom_promptws(����z?GetCertnameTest.test_get_certnames_allow_multiple_custom_promptcCsJdg|_d|_ddlm}tjgf|��j_|jtj	|j
|jddd�dS)Nr�r�rr3r�Tr�)rJr8r4rQr�r�rSr�rr�r�rr�rrr�,test_get_certnames_allow_multiple_user_abort�s�z<GetCertnameTest.test_get_certnames_allow_multiple_user_abortN)r-r.r/r0rr�rZr[r�r�r�r�r�r�rrrrr�3s*


r��__main__)&r0r~rqroZunittestr'rZr8rrZcertbot.compatrrZcertbot.displayrrQZcertbot.storagerZ
certbot.testsr	rXZConfigTestCaser
r2ZBaseRenewableCertTestrBr\r�r�r�r�r�r�r�ZTestCaser�r-�mainrrrr�<module>s8,(,{ W&;b