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__/reverter_test.cpython-38.pyc
U

�]cH�@s�dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddl
mZddl
mZGdd�dej�ZGd	d
�d
ej�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zedkr�e��dS)zTest certbot.reverter.�N)�errors)�os)�
filesystem)�utilcs�eZdZdZ�fdd�Zdd�Ze�d�dd��Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Ze�d�dd��Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Ze�d*�d+d,��Ze�d-�d.d/��Zd0d1�Z�ZS)2�ReverterCheckpointLocalTestzTest the Reverter Class.csTtt|���ddlm}t�tj�||j�|_	t
�}|\|_|_|_
|_|_dS�Nr)�Reverter)�superr�setUp�certbot.reverterr�logging�disable�CRITICAL�config�reverter�setup_test_files�config1�config2�dir1�dir2�sets��selfr�tup��	__class__��=/usr/lib/python3/dist-packages/certbot/tests/reverter_test.pyr
sz!ReverterCheckpointLocalTest.setUpcCs6t�|jj�t�|j�t�|j�t�tj�dS�N�	�shutilZrmtreerZwork_dirrrrr
ZNOTSET�rrrr�tearDown sz$ReverterCheckpointLocalTest.tearDownz*certbot.reverter.Reverter._read_and_appendc	Cs�td�|_z|j�|jdd�Wntk
r6YnX|j�d�t�|jjj	�d}tj
�|jjj	|d�}t|d��}|�
�}W5QRX|�d|k�dS)Nzcannot evenr�save1Zblah�
CHANGES_SINCE�rz
No changes)�OSError�side_effectr�add_to_checkpointr�finalize_checkpointr�listdirr�
backup_dir�path�join�open�read�
assertTrue)rZ	mock_readr,Z	no_change�f�xrrr�test_no_change's
z*ReverterCheckpointLocalTest.test_no_changecCs�|j�|jdd�|j�|jdd�|�tj�|jj��|�	t
|jj�d�|�tj�tj�
|jjd���|�	t|jj�d�|j|j��dS)Nrr#��save2Z
save1save2�	NEW_FILESz{0}
{1}
)r�add_to_temp_checkpointrr0rr,�isdirr�temp_checkpoint_dir�assertEqual�get_save_notes�assertFalse�isfiler-�
get_filepaths�formatrrr!rrr�!test_basic_add_to_temp_checkpoint5s��
�
�z=ReverterCheckpointLocalTest.test_basic_add_to_temp_checkpointc	Cs@t�d��,}td�|_|�tj|jj|j	dd�W5QRXdS)N�certbot.reverter.shutil.copy2�bad copyrr#)
�mock�patch�IOErrorr'�assertRaisesr�
ReverterErrorrr(r�rZ
mock_copy2rrr�#test_add_to_checkpoint_copy_failureDs
�z?ReverterCheckpointLocalTest.test_add_to_checkpoint_copy_failurecCs�tj�|jd�}|j�d|�t|d�|j�|jdd�|j�	|jdd�|�
tj|jj|jdd�|j�|jd	d
�|�
tj|jjt
|g�d�dS)
z:Make sure that checkpoint errors are thrown appropriately.�config3.txtTzThis is a new file!�r#rr5Zsave3r4Zsave4zinvalid saveN)rr,r-rr�register_file_creation�update_filer(rr7rFrrG�set�r�config3rrr�test_checkpoint_conflictKs
��z4ReverterCheckpointLocalTest.test_checkpoint_conflictcCs`|j�|jdd�t|jd�|j�|jdd�t|jd�|j��|�t|j�d�dS)Nrr#zupdated-directivezsave2-updated dirz'new directive change that we won't keep�directive-dir1)rr7rrMr�revert_temporary_configr:�read_inr!rrr�#test_multiple_saves_and_temp_revert^s
z?ReverterCheckpointLocalTest.test_multiple_saves_and_temp_revertcCs�tj�|jd�}t|d�tj�|jd�}t|d�|j�d|j�|j�d|j	�|j�d||�|j�
�|�tj�|j��|�tj�|j	��|�tj�|��|�tj�|��dS)NrJZConfig3�config4.txtZConfig4T)
rr,r-rrMrrrLrr�recovery_routiner<r=�rrPZconfig4rrr�*test_multiple_registration_fail_and_revertgs


zFReverterCheckpointLocalTest.test_multiple_registration_fail_and_revertcCs`|j�d|j�|j�d|j�|j�d|j�|j�d|j�t|jj�}|�t|�d�dS)NTr4)rrLr�
get_new_filesrr9r:�len)r�filesrrr�$test_multiple_registration_same_file{sz@ReverterCheckpointLocalTest.test_multiple_registration_same_filec	CsJt��}tjd|dd��(td�|_|�tj|jj	d|j
�W5QRXdS)N�certbot.reverter.openT�Zcreate�bad open)rC�	mock_openrDr&r'rFrrGrrLr�rZm_openrrr�'test_register_file_creation_write_error�s
�zCReverterCheckpointLocalTest.test_register_file_creation_write_errorcCs|�tj|jjd�dS)N�filepath)rFrrGrrLr!rrr�test_bad_registration�s
�z1ReverterCheckpointLocalTest.test_bad_registrationcCs`ddgddgdgg}|D]}|j�d|�qt|jj�}tj�||�D]\}}|�||�qFdS)N�a2dismod�sslZrewriteZ
cleanslateT)	r�register_undo_command�get_undo_commandsrr9�sixZmoves�zipr:)r�coms�comZact_comsZa_comrrr�test_register_undo_command�s�z6ReverterCheckpointLocalTest.test_register_undo_commandc	CsJt��}tjd|dd��(td�|_|�tj|jj	ddg�W5QRXdS)Nr^Tr_r`Zcommand)
rCrarDr&r'rFrrGrrhrbrrr�test_bad_register_undo_command�s
�z:ReverterCheckpointLocalTest.test_bad_register_undo_commandzcertbot.util.run_scriptcCsNdtjg|_dgddgg}|D]}|j�d|�q|j��|�|jd�dS)N�Zinvalid_commandrfrgTrK)rZSubprocessErrorr'rrhrSr:�
call_count)rZmock_runrlrmrrr�test_run_undo_commands�s�
z2ReverterCheckpointLocalTest.test_run_undo_commandscCs<|j�|jdd�tjtjd�|j_|�tj|jj	�dS)Nr�	perm save�r')
rr(rrC�	MagicMockrrG�_recover_checkpointrFrWr!rrr�)test_recovery_routine_in_progress_failure�s
�
zEReverterCheckpointLocalTest.test_recovery_routine_in_progress_failurecCsDtjt�d�d�}||j_|j�|jdd�|�tj|jj	�dS)N�ertr�config1 save)
rCrurrGrrvr7rrFrS�rZmock_recoverrrr�,test_recover_checkpoint_revert_temp_failures�s��zHReverterCheckpointLocalTest.test_recover_checkpoint_revert_temp_failurescCsRtjt�d�d�}||j_|j�|jdd�|j�d�|�	tj|jj
d�dS)Nrxrtrry�Titler4)rCrurrGrrvr(rr)rF�rollback_checkpointsrzrrr�(test_recover_checkpoint_rollback_failure�s��zDReverterCheckpointLocalTest.test_recover_checkpoint_rollback_failurec	CsJ|j�|jdd�t�d��"}td�|_|�tj	|jj
�W5QRXdS)Nrr#rArB�rr7rrCrDr&r'rFrrGrSrHrrr�$test_recover_checkpoint_copy_failure�s
�z@ReverterCheckpointLocalTest.test_recover_checkpoint_copy_failurec	CsJ|j�|jdd�t�d��"}td�|_|�tj	|jj
�W5QRXdS)Nrz	temp savezcertbot.reverter.shutil.rmtreezCannot remove treer)rZmock_rmtreerrr�"test_recover_checkpoint_rm_failure�s
�z>ReverterCheckpointLocalTest.test_recover_checkpoint_rm_failurezcertbot.reverter.logger.warningcCs6|j�dtj�|jd��|j��|�|jd�dS)NTzmissing_file.txtr4)	rrLrr,r-rrSr:rq)rZ	mock_warnrrr�)test_recover_checkpoint_missing_new_files�s�
zEReverterCheckpointLocalTest.test_recover_checkpoint_missing_new_fileszcertbot.reverter.os.removecCs0|j�d|j�td�|_|�tj|jj�dS)NTzCan't remove)	rrLrr&r'rFrrGrS)rZmock_removerrr�&test_recover_checkpoint_remove_failure�s
�zBReverterCheckpointLocalTest.test_recover_checkpoint_remove_failurecCstj�|jd�}|j�d|�t|d�|j�|jdd�t|j	d�|j�|jdd�t|j
d	�|j�|jdd
�t|j	d�tj�|jd�}|j�d
|�t|d�|j�
�|�tj�|��|�tj�|��|�t|j	�d�|�t|j
�d�dS)NrJFzThis is a new perm file!rz
perm save1zupdated perm config1r4z
perm save2zupdated perm config2z
temp save1zsecond update now temp config1rVTzNew temporary file!rR�directive-dir2)rr,r-rrrLrMr(rrrr7rrWr<r=r:rTrXrrr�#test_recovery_routine_temp_and_perm�s"


z?ReverterCheckpointLocalTest.test_recovery_routine_temp_and_perm)�__name__�
__module__�__qualname__�__doc__r
r"rCrDr3r@rIrQrUrYr]rcrernrorrrwr{r~r�r�r�r�r��
__classcell__rrrrrs6

	





rcs�eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Ze	�
d�d
d��Ze	�
d�dd��Ze	�
d�dd��Z
dd�Ze��dd��Ze	�
d�dd��Zdd�Zdd�Z�ZS)�TestFullCheckpointsReverterz5Tests functions having to deal with full checkpoints.csTtt|���ddlm}t�tj�||j�|_	t
�}|\|_|_|_
|_|_dSr)r	r�r
rrrr
rrrrrrrrrrrrrr
sz!TestFullCheckpointsReverter.setUpcCs6t�|jj�t�|j�t�|j�t�tj�dSrrr!rrrr"&sz$TestFullCheckpointsReverter.tearDowncCs@|�tj|jjd�|�tj|jjd�|�tj|jjd�dS)Nz-1i���Zone)rFrrGrr}r!rrr�test_rollback_improper_inputs-s���z9TestFullCheckpointsReverter.test_rollback_improper_inputsc	Cs|��}|�tt�|jj��d�|j�d�|�t	|j
�d�|�t	|j�d�|�t	|�d�|j�d�|�t	|j
�d�|�t	|j�d�|�tj
�|��t�|jj�}|�t|�d�|�dttj
�|jj|d��k�|j�d�|�t	|j
�d	�dS)
N�r4�update config1�update config2�Final form config3r��First CheckpointrrR)�_setup_three_checkpointsr:r[rr*rr+rr}rTrrr<r,r=r0r;r-)rrPZall_dirsrrr�.test_rollback_finalize_checkpoint_valid_inputs5s&��zJTestFullCheckpointsReverter.test_rollback_finalize_checkpoint_valid_inputscCs|j�d�dS)NzNo checkpoint...)rr)r!rrr�'test_finalize_checkpoint_no_in_progressSszCTestFullCheckpointsReverter.test_finalize_checkpoint_no_in_progresszcertbot.reverter.shutil.movecCs6|j�|jdd�td�|_|�tj|jjd�dS)Nrrszcannot mover|�	rr(rr&r'rFrrGr))rZ	mock_moverrr�%test_finalize_checkpoint_cannot_titleWs
�zATestFullCheckpointsReverter.test_finalize_checkpoint_cannot_titlez#certbot.reverter.filesystem.replacecCs2|j�|jdd�t|_|�tj|jjd�dS)Nrrsr|r�)rZmock_replacerrr�,test_finalize_checkpoint_no_rename_directory_s�zHTestFullCheckpointsReverter.test_finalize_checkpoint_no_rename_directoryzcertbot.reverter.loggercCsL|j�d�|�|jjd�|��d|j_|j�d�|�|jjd�dS)Nr4r�)rr}r:Zwarningrqr��rZmock_loggerrrr�test_rollback_too_manyhsz2TestFullCheckpointsReverter.test_rollback_too_manycCsN|��}|j�d�|�t|j�d�|�t|j�d�|�tj	�
|��dS)Nr�rRr�)r�rr}r:rTrrr<rr,r=rOrrr�test_multi_rollbackts
z/TestFullCheckpointsReverter.test_multi_rollbackcCs(|��|j��|�|�jjd�dS)z0This is not strict as this is subject to change.r4N)r�r�view_config_changesr:Znotificationrq)rZmock_outputrrr�test_view_config_changes|s
z4TestFullCheckpointsReverter.test_view_config_changescCs |j��|�|jjdk�dS)Nr)rr�r0�inforqr�rrr�#test_view_config_changes_no_backups�s
z?TestFullCheckpointsReverter.test_view_config_changes_no_backupscCs.t�tj�|jjd��|�tj	|j
j�dS)NZin_progress)r�makedirsrr,r-rr+rFrrGrr�r!rrr�(test_view_config_changes_bad_backups_dir�s
�zDTestFullCheckpointsReverter.test_view_config_changes_bad_backups_dircCs�|j�|jdd�|j�d�t|jd�tj�|j	d�}|j�
d|�t|d�|j�|jdd	�|j�d
�t|jd�t|d�|j�|jd
d�|j�d�t|jd�t|jd�t|d�|S)z$Generate some finalized checkpoints.rz
first saver�r�rJFzdirective-config3r4zsecond savezSecond Checkpointr�zupdate config3rKz
third savezThird Checkpoint - Save bothzFinal form config1zFinal form config2r�)rr(rr)rMrrr,r-rrLrrOrrrr��s 


z4TestFullCheckpointsReverter._setup_three_checkpoints)r�r�r�r�r
r"r�r�r�rCrDr�r�r�r��	test_utilZpatch_get_utilityr�r�r�r�r�rrrrr�s&





r�c	Cs�t�d�}t�d�}tj�|d�}tj�|d�}t|d��}|�d�W5QRXt|d��}|�d�W5QRXt|g�t|g�t||g�g}|||||fS)z!Setup sample configuration files.rrz
config.txt�wrRr�)�tempfileZmkdtemprr,r-r.�writerN)rrrr�file_fdrrrrr�s


�rcCsttj�|d��S)zRead save notesr$�rTrr,r-��direrrrr;�sr;cCsttj�|d��S)z
Get FilepathsZ	FILEPATHSr�r�rrrr>�sr>cCsttj�|d����S)�Get new files.r6)rTrr,r-�
splitlinesr�rrrrZ�srZc
Cs8ttj�|d���}tt�|��W5QR�SQRXdS)r�ZCOMMANDSN)r.rr,r-�list�csv�reader)r�Zcsvfilerrrri�sric
Cs*t|d��}|��W5QR�SQRXdS)zRead in a file, return the strr%N)r.r/)r,r�rrrrT�srTc	Cs$t|d��}|�|�W5QRXdS)zUpdate a file with a new value.r�N)r.r�)�filename�stringr�rrrrM�srM�__main__)r�r�rr r�ZunittestrCrjZcertbotrZcertbot.compatrrZ
certbot.testsrr�ZConfigTestCaserr�rr;r>rZrirTrMr��mainrrrr�<module>s2	

Anon7 - 2021