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

U

�]�;�@sTdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZdd	lmZddlmZGd
d�dej�ZGdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z e!dk�rPe�"�dS)zTests for certbot.log.�N)�messages)�Optional)�	constants)�errors)�util)�
filesystem)�osc@sLeZdZdZedd��Ze�d�e�d�e�d�e�d�dd	�����Zd
S)�PreArgParseSetupTestz*Tests for certbot.log.pre_arg_parse_setup.cOsddlm}|�S)Nr)�pre_arg_parse_setup)�certbot.logr
)�cls�args�kwargsr
�r�8/usr/lib/python3/dist-packages/certbot/tests/log_test.py�_callszPreArgParseSetupTest._call�certbot.log.sysz%certbot.log.pre_arg_parse_except_hook�certbot.log.logging.getLoggerz certbot.log.util.atexit_registerc
Cs�dg|_tj|_|��|�}|j�tj�|�|j	j
d�d}|j	jD]D}|dd}|dkrzt|tj
j�rz|}|j}	qH|�t|tj��qH|�t|	tj��|�tj�|�ddd�|j|ddddtjd�dS)Nz--debug�r��T��debug�log_path)�argv�sys�version_infor�setLevel�assert_called_once_with�logging�DEBUG�assertEqual�
addHandlerZ
call_countZcall_args_list�
isinstance�handlers�
MemoryHandler�target�
assertTrue�
StreamHandlerZshutdown�
excepthook�mock�ANY)
�selfZ
mock_registerZmock_get�mock_except_hook�mock_sysZmock_root_logger�memory_handler�call�handlerr&rrr�test_its4
��zPreArgParseSetupTest.test_itN�	�__name__�
__module__�__qualname__�__doc__�classmethodrr*�patchr2rrrrr	s
r	csPeZdZdZedd��Z�fdd�Z�fdd�Zdd	�Zd
d�Z	dd
�Z
�ZS)�PostArgParseSetupTestz+Tests for certbot.log.post_arg_parse_setup.cOsddlm}|||�S)Nr)�post_arg_parse_setup)rr;)rr
rr;rrrr?szPostArgParseSetupTest._callcs�tt|���d|j_d|j_d|j_tjd|j_	t
tjd�|_ddl
m}|t���|_ddl
m}m}|�|_|jj|_||j�|_tj|j|jgd�|_dS)	NFi��
verbose_count�wr��ColoredStreamHandler)r%�TempHandler)r$)�superr:�setUp�configr�max_log_backups�quietrZCLI_DEFAULTSr<�openr�devnullrr?�six�StringIO�stream_handlerr%r@�temp_handler�path�	temp_pathr/r*�	MagicMock�root_logger)r,r?r%r@��	__class__rrrBDs

�zPostArgParseSetupTest.setUpcs:|j��|j��|j��|j��tt|���dS�N)r/�closerJrKrGrAr:�tearDown�r,rPrrrTUs




zPostArgParseSetupTest.tearDowncCst�d��R}|j|_d}t�|��0}t�d��}tj|_|�|j�W5QRXW5QRXW5QRX|jj�	|j
�|�|jjj
�|�tj�tj�|jjd���|�tj�|j��|�ddd�|j	ddd|jj|jjd�|jj}|jj�r|�|tj�n|�||jjd	�dS)
Nr�&certbot.log.post_arg_parse_except_hookrzletsencrypt.logrrrr�
)r*r9rOZreturn_valuerrrrCZ
removeHandlerrr/r'r"�calledrrL�exists�join�logs_dir�assertFalserMr)rrJ�levelrEr!rZQUIET_LOGGING_LEVELr<)r,Zmock_get_loggerZexcept_hook_pathr-r.r]rrr�test_common\s8*���
z!PostArgParseSetupTest.test_commoncCsd|j_|��dS�NT)rCrr^rUrrr�
test_debugusz PostArgParseSetupTest.test_debugcCsd|j_|��dSr_)rCrEr^rUrrr�
test_quietysz PostArgParseSetupTest.test_quiet)r4r5r6r7r8rrBrTr^r`ra�
__classcell__rrrPrr:<s
r:csheZdZdZedd��Z�fdd�Ze�d�dd��Z	d	d
�Z
dd�Zd
d�Ze�d�dd��Z
�ZS)�SetupLogFileHandlerTestz-Tests for certbot.log.setup_log_file_handler.cOsddlm}|||�S)Nr)�setup_log_file_handler)rrd)rr
rrdrrrr�szSetupLogFileHandlerTest._callcstt|���d|j_dS)N�*)rArcrBrCrDrUrPrrrB�szSetupLogFileHandlerTest.setUpz1certbot.main.logging.handlers.RotatingFileHandlerc
Cs`t|_z|�|jdd�Wn6tjk
rP}z|�dt|�k�W5d}~XYnX|�d�dS)N�test.log�%(message)sz
--logs-dirzError not raised.)	�IOError�side_effectrrCr�Errorr'�str�fail)r,�mock_handler�errrrr�test_failure�s$z$SetupLogFileHandlerTest.test_failurecCs|jdd�dS)NT��should_rollover)�_test_success_commonrUrrr�test_success_with_rollover�sz2SetupLogFileHandlerTest.test_success_with_rollovercCsd|j_|jdd�dS)NrFrp)rCrDrrrUrrr�test_success_without_rollover�sz5SetupLogFileHandlerTest.test_success_without_rollovercCs�d}|�|j|d�\}}|��|�|jtj�|�|jjt	j
�tj�
|jj|�}|�||�tj�
|jj|d�}|�tj�|�|�dS)Nrfrgz.1)rrCrSr!r]rr Z	formatterZ	converter�time�	localtimerrLrZr[rY)r,rq�log_filer1rZ
expected_pathZbackup_pathrrrrr�sz,SetupLogFileHandlerTest._test_success_commonz0certbot.log.logging.handlers.RotatingFileHandlercCs2|�|jdd�|jdd}|�|jj|�dS)NrfrgrZbackupCount)rrC�	call_argsr!rD)r,rmZbackup_countrrr�test_max_log_backups_used�sz1SetupLogFileHandlerTest.test_max_log_backups_used)r4r5r6r7r8rrBr*r9rorsrtrrryrbrrrPrrc~s


rcc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�ColoredStreamHandlerTestz*Tests for certbot.log.ColoredStreamHandlercCsXt��|_dd�|j_t��|_|j�tj�ddl	m
}||j�|_|j�|j�dS)NcSsdSr_rrrrr�<lambda>��z0ColoredStreamHandlerTest.setUp.<locals>.<lambda>rr>)
rHrI�stream�isattyr�	getLogger�loggerrr rr?r1r")r,r?rrrrB�s

zColoredStreamHandlerTest.setUpcCs|j��dSrR�r1rSrUrrrrT�sz!ColoredStreamHandlerTest.tearDowncCs,d}|j�|�|�|j��d�|��dS)Nz
I did a thingz{0}
)r�rr!r}�getvalue�format�r,�msgrrr�test_format�sz$ColoredStreamHandlerTest.test_formatcCs>d}tj|j_|j�|�|�|j��d�	t
j|t
j��dS)NzI did another thingz
{0}{1}{2}
)
rr r1Z	red_levelr�rr!r}r�r�rZANSI_SGR_REDZANSI_SGR_RESETr�rrr�test_format_and_red_level�s
��z2ColoredStreamHandlerTest.test_format_and_red_levelN)r4r5r6r7rBrTr�r�rrrrrz�s

rzc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�MemoryHandlerTestz#Tests for certbot.log.MemoryHandlercCsbt�t�|_|j�tj�d|_t��|_	t�
|j	�|_ddlm
}||j�|_|j�|j�dS)Nzhi therer)r%)rrr4r�rr r�rHrIr}r(rJrr%r1r")r,r%rrrrB�s
zMemoryHandlerTest.setUpcCs|j��|j��dSrR)r1rSrJrUrrrrT�s
zMemoryHandlerTest.tearDowncCs2|��|jjdd�|�|j��|jd�dS)NT�Zforce�
)�_test_log_debugr1�flushr!r}r�r�rUrrr�
test_flush�szMemoryHandlerTest.test_flushcCs.|j�|j�|j��|�|j��d�dS)N�)r�Zcriticalr�r1r�r!r}r�rUrrr�test_not_flushed�s
z"MemoryHandlerTest.test_not_flushedcCsh|��t��}t�|�}|j�|�|jjdd�|�|j	�
�d�|�|�
�|jd�|��dS)NTr�r�r�)
r�rHrIrr(r1Z	setTargetr�r!r}r�r�rS)r,Z
new_streamZnew_stream_handlerrrr�test_target_reset�s
z#MemoryHandlerTest.test_target_resetcCs|j�|j�dSrR)r�rr�rUrrrr��sz!MemoryHandlerTest._test_log_debugN)
r4r5r6r7rBrTr�r�r�r�rrrrr��sr�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�TempHandlerTestz"Tests for certbot.log.TempHandler.cCsd|_ddlm}|�|_dS)NFr)r@)�closedrr@r1)r,r@rrrrB�szTempHandlerTest.setUpcCs|j��dSrRr�rUrrrrTszTempHandlerTest.tearDowncCs|�t�|jjd��dS)Ni�)r'rZcheck_permissionsr1rLrUrrr�test_permissionssz TempHandlerTest.test_permissionscCs$|j��|�tj�|jj��dSrR)r1rSr\rrLrYrUrrr�test_delete	s
zTempHandlerTest.test_deletecCsB|j�t���|j��|�tj�|jj��t�	|jj�dSrR)
r1�emitr*rNrSr'rrLrY�removerUrrr�test_no_delete
s
zTempHandlerTest.test_no_deleteN)	r4r5r6r7rBrTr�r�r�rrrrr��sr�c@s.eZdZdZedd��Ze�d�dd��ZdS)�PreArgParseExceptHookTestz0Tests for certbot.log.pre_arg_parse_except_hook.cOsddlm}|||�S)Nr)�pre_arg_parse_except_hook)rr�)rr
rr�rrrrszPreArgParseExceptHookTest._callrVcCsDt��}d}ddi}|j|f|�|�|j||�|jjdd�dS)N)�somer
r�rTr�)r*rNrrr�)r,Zmock_post_arg_parse_except_hookr/r
rrrrr2s�z!PreArgParseExceptHookTest.test_itNr3rrrrr�s

r�c@sleZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�PostArgParseExceptHookTestz1Tests for certbot.log.post_arg_parse_except_hook.cOsddlm}|||�S)Nr)�post_arg_parse_except_hook)rr�)rr
rr�rrrr*sz PostArgParseExceptHookTest._callcCsd|_d|_dS)Nztest error messagezfoo.log)�	error_msgrrUrrrrB/sz PostArgParseExceptHookTest.setUpcCs2t}|j|dd�\}}|�|j|�|�|�dS�NF�r)�KeyboardInterrupt�_test_common�_assert_exception_logged�error�_assert_logfile_output�r,�exc_type�mock_logger�outputrrr�test_base_exception3sz.PostArgParseExceptHookTest.test_base_exceptioncCs2t}|j|dd�\}}|�|j|�|�|�dS)NTr�)�
ValueErrorr�r�r�r�r�rrrr`9sz%PostArgParseExceptHookTest.test_debugcCs6tj}|j|dd�\}}|�|j|�|�||�dSr�)rZPluginErrorr�r�r�_assert_quiet_outputr�rrr�test_custom_error?sz,PostArgParseExceptHookTest.test_custom_errorcs^tt�tj����fdd�}|j|dd�\}}|�|jtj�|�	||�|�
tj|k�dS)Ncstjj�|d�S)z6Wraps ACME errors so the constructor takes only a msg.)Zdetail)rrjZ	with_code)r��Z	acme_coderr�get_acme_errorIszBPostArgParseExceptHookTest.test_acme_error.<locals>.get_acme_errorFr�)�nextrHZiterkeysrZERROR_CODESr�r�rrjr�r\ZERROR_PREFIX)r,r�r�r�rr�r�test_acme_errorEsz*PostArgParseExceptHookTest.test_acme_errorcCs4t}|j|dd�\}}|�|j|�|�||�dSr�)r�r�r�rr�r�rrr�test_other_errorRsz+PostArgParseExceptHookTest.test_other_errorcs�t����fdd�}z||j��Wn�tk
r�t��}t�d��z}||j_	t�d���Zz|j
|||jd��Wn0tk
r�}z��
t|��W5d}~XYnX|�d�W5QRXW5QRXYnX���}||fS)z,Returns the mocked logger and stderr output.cs��|d�dS)zWrite error to mock_err.rN)�write)r
Z
unused_kwargs�Zmock_errrr�	write_err\sz:PostArgParseExceptHookTest._test_common.<locals>.write_errzcertbot.log.loggerzcertbot.log.sys.stderrrNzSystemExit not raised.)rHrIr��
BaseExceptionr�exc_infor*r9r�rirr�
SystemExitr�rkrlr�)r,Z
error_typerr�r�r�Zexit_errr�rr�rr�Xs(� $z'PostArgParseExceptHookTest._test_commoncCsJ|�|j�|jd}|�d|k�|d}|tjtjf}|�||�dS)Nrr�)r'rXrxr*r+r!)r,Zlog_funcr�Zcall_kwargsZactual_exc_infoZexpected_exc_inforrrr�rs
z3PostArgParseExceptHookTest._assert_exception_loggedcCs"|�d|k�|�|j|k�dS)NzPlease see the logfile)r'r)r,r�rrrr�{sz1PostArgParseExceptHookTest._assert_logfile_outputcCs0|�|jj�|�|jj�|�|j|k�dSrR)r\Z	exceptionrXr'rr�)r,r�r�rrrr�sz/PostArgParseExceptHookTest._assert_quiet_outputN)r4r5r6r7r8rrBr�r`r�r�r�r�r�r�r�rrrrr�(s

	r�c@s4eZdZdZedd��Zdd�Zdd�Zdd	�Zd
S)�ExitWithLogPathTestz)Tests for certbot.log.exit_with_log_path.cOsddlm}|||�S)Nr)�exit_with_log_path)rr�)rr
rr�rrrr�szExitWithLogPathTest._callcCsHtj�|jd�}t|d���|�|�}|�d|k�|�||k�dS)Nrfr=�logfiles)rrLrZ�tempdirrFrSr�r')r,rw�err_strrrr�
test_log_file�s

z!ExitWithLogPathTest.test_log_filecCs.|�|j�}|�d|k�|�|j|k�dS)Nr�)r�r�r')r,r�rrr�test_log_dir�sz ExitWithLogPathTest.test_log_dirc
OsNz|j||�Wn.tk
r>}zt|�WY�Sd}~XYnX|�d�dS)NzSystemExit was not raised.)rr�rkrl)r,r
rrnrrrr��s
z ExitWithLogPathTest._test_commonN)	r4r5r6r7r8rr�r�r�rrrrr��s
r��__main__)#r7rZlogging.handlersrruZunittestr*rHZacmerZacme.magic_typingrZcertbotrrrZcertbot.compatrrZ
certbot.testsZ	test_utilZTestCaser	ZConfigTestCaser:rcrzr�r�r�r�ZTempDirTestCaser�r4�mainrrrr�<module>s4&B3 +]