JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/certbot/_internal/tests/__pycache__/log_test.cpython-39.pyc

a

}|�gM>�@sxdZddlZddlZddlZddlZddlZddlmZddlZddlm	Z	ddl
Z
ddlmZddl
mZddl
mZddlmZdd	lmZdd
lmZddlmZGdd�dej�ZGd
d�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Z Gdd�dej!�Z"e#dk�rte�$e
�%ej&dd�e'g��dS)z Tests for certbot._internal.log.�N)�Optional)�mock)�messages)�errors)�util)�	constants)�
filesystem)�oscs\eZdZdZedd��Z�fdd�Ze�d�e�d�e�d�e�d	�d
d�����Z	�Z
S)�PreArgParseSetupTestz4Tests for certbot._internal.log.pre_arg_parse_setup.cOsddlm}|�S)Nr)�pre_arg_parse_setup)�certbot._internal.logr)�cls�args�kwargsr�r�D/usr/lib/python3.9/site-packages/certbot/_internal/tests/log_test.py�_callszPreArgParseSetupTest._callcst��t���dS�N)�logging�shutdown�super�tearDown��self��	__class__rrrszPreArgParseSetupTest.tearDown�certbot._internal.log.sysz/certbot._internal.log.pre_arg_parse_except_hook�'certbot._internal.log.logging.getLoggerz*certbot._internal.log.util.atexit_registerc
	Cs�dg|_tj|_|��|�}|j�tj�|jj	dks<J�d}|jj
D]B}|dd}|durzt|tjj
�rz|}|j}	qHt|tj�sHJ�qHt|	tj�s�J�|�tj�|�ddd�|j|dddddtjd�dS)	Nz--debug�r��TF��debug�quiet�log_path)�argv�sys�version_infor�setLevel�assert_called_once_withr�DEBUG�
addHandlerZ
call_countZcall_args_list�
isinstance�handlers�
MemoryHandler�target�
StreamHandlerr�
excepthookr�ANY)
rZ
mock_registerZmock_get�mock_except_hook�mock_sysZmock_root_logger�memory_handler�call�handlerr/rrr�test_it$s&�zPreArgParseSetupTest.test_it)�__name__�
__module__�__qualname__�__doc__�classmethodrrr�patchr8�
__classcell__rrrrr
s
r
csPeZdZdZedd��Z�fdd�Z�fdd�Zdd	�Zd
d�Z	dd
�Z
�ZS)�PostArgParseSetupTestz5Tests for certbot._internal.log.post_arg_parse_setup.cOsddlm}||i|��S)Nr)�post_arg_parse_setup)rrA)r
rrrArrrrDszPostArgParseSetupTest._callcs�t���d|j_d|j_d|j_tjd|j_t	t
jd�|_ddlm
}|t���|_ddlm}ddlm}|�|_|jj|_||j�|_tj|j|jgd	�|_dS)
NFi��
verbose_count�wr��ColoredStreamHandler�r.��TempHandler)r-)r�setUp�configr"�max_log_backupsr#rZCLI_DEFAULTSrB�openr	�devnullrrE�io�StringIO�stream_handlerr.rH�temp_handler�path�	temp_pathr5r�	MagicMock�root_logger)rrEr.rHrrrrIIs 


�zPostArgParseSetupTest.setUpcs6|j��|j��|j��|j��t���dSr)r5�closerPrQrMrrrrrrr[s




zPostArgParseSetupTest.tearDownc
CsTt�d���}|j|_d}t�|��N}t�d��$}tj|_|�|j�Wd�n1sX0YWd�n1sv0YWd�n1s�0Ytj	�
|jjd�}|jj�
|j�|jjjs�J�tj	�|�s�J�tj	�|j�r�J�|�ddd�|j
ddd|jj|jj|d�|jj}|jj�r@|tjk�sPJ�n|tjk�sPJ�dS)	Nr�0certbot._internal.log.post_arg_parse_except_hookrzletsencrypt.logrrr r!)rr>rUZreturn_valuer&r'rrJr	rR�join�logs_dirZ
removeHandlerr)r5r+�called�existsrSr1r"r#rP�levelrZQUIET_LOGGING_LEVELZDEFAULT_LOGGING_LEVEL)rZmock_get_loggerZexcept_hook_pathr3r4r$r\rrr�test_commonbs.f��
z!PostArgParseSetupTest.test_commoncCsd|j_|��dS�NT)rJr"r]rrrr�
test_debug}sz PostArgParseSetupTest.test_debugcCsd|j_|��dSr^)rJr#r]rrrr�
test_quiet�sz PostArgParseSetupTest.test_quiet)r9r:r;r<r=rrIrr]r_r`r?rrrrr@As
r@csheZdZdZedd��Z�fdd�Ze�d�dd��Z	d	d
�Z
dd�Zd
d�Ze�d�dd��Z
�ZS)�SetupLogFileHandlerTestz7Tests for certbot._internal.log.setup_log_file_handler.cOsddlm}||i|��S)Nr)�setup_log_file_handler)rrb)r
rrrbrrrr�szSetupLogFileHandlerTest._callcst���d|j_dS)N�*)rrIrJrKrrrrrI�s
zSetupLogFileHandlerTest.setUpz;certbot._internal.main.logging.handlers.RotatingFileHandlerc
Cs`t|_z|�|jdd�Wn6tjyP}zdt|�vs<J�WYd}~nd}~00|�d�dS)N�test.log�%(message)sz
--logs-dirzError not raised.)�IOError�side_effectrrJr�Error�str�fail)r�mock_handler�errrrr�test_failure�s&z$SetupLogFileHandlerTest.test_failurecCs|jdd�dS)NT��should_rollover)�_test_success_commonrrrr�test_success_with_rollover�sz2SetupLogFileHandlerTest.test_success_with_rollovercCsd|j_|jdd�dS)NrFrn)rJrKrprrrr�test_success_without_rollover�sz5SetupLogFileHandlerTest.test_success_without_rollovercCs�d}|�|j|d�\}}|��|jtjks0J�|jjtj	ksBJ�t
j�|jj
|�}||ks`J�t
j�|jj
|d�}t
j�|�|ks�J�dS)Nrdrez.1)rrJrVr\rr*�	formatterZ	converter�time�	localtimer	rRrXrYr[)rro�log_filer7r$Z
expected_pathZbackup_pathrrrrp�sz,SetupLogFileHandlerTest._test_success_commonz:certbot._internal.log.logging.handlers.RotatingFileHandlercCs2|�|jdd�|jdd}|jj|ks.J�dS)NrdrerZbackupCount)rrJ�	call_argsrK)rrkZbackup_countrrr�test_max_log_backups_used�sz1SetupLogFileHandlerTest.test_max_log_backups_used)r9r:r;r<r=rrIrr>rmrqrrrprxr?rrrrra�s


rac@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�ColoredStreamHandlerTestz4Tests for certbot._internal.log.ColoredStreamHandlercCsXt��|_dd�|j_t��|_|j�tj�ddl	m
}||j�|_|j�|j�dS)NcSsdSr^rrrrr�<lambda>��z0ColoredStreamHandlerTest.setUp.<locals>.<lambda>rrD)
rNrO�stream�isattyr�	getLogger�loggerr(r*rrEr7r+)rrErrrrI�s

zColoredStreamHandlerTest.setUpcCs|j��dSr�r7rVrrrrr�sz!ColoredStreamHandlerTest.tearDowncCs,d}|j�|�|j��d�|�ks(J�dS)Nz
I did a thingz{0}
)rr"r|�getvalue�format�r�msgrrr�test_format�sz$ColoredStreamHandlerTest.test_formatcCs>d}tj|j_|j�|�|j��d�t	j
|t	j�ks:J�dS)NzI did another thingz
{0}{1}{2}
)rr*r7Z	red_levelrr"r|r�r�rZANSI_SGR_REDZANSI_SGR_RESETr�rrr�test_format_and_red_level�s
��z2ColoredStreamHandlerTest.test_format_and_red_levelN)r9r:r;r<rIrr�r�rrrrry�s

ryc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�MemoryHandlerTestz-Tests for certbot._internal.log.MemoryHandlercCsbt�t�|_|j�tj�d|_t��|_	t�
|j	�|_ddlm
}||j�|_|j�|j�dS)Nzhi thererrF)rr~r9rr(r*r�rNrOr|r0rPrr.r7r+)rr.rrrrI�s
zMemoryHandlerTest.setUpcCs|j��|j��dSr)r7rVrPrrrrr�s
zMemoryHandlerTest.tearDowncCs2|��|jjdd�|j��|jdks.J�dS)NT��force�
)�_test_log_debugr7�flushr|r�r�rrrr�
test_flush�szMemoryHandlerTest.test_flushcCs.|j�|j�|j��|j��dks*J�dS)N�)rZcriticalr�r7r�r|r�rrrr�test_not_flushed�s
z"MemoryHandlerTest.test_not_flushedcCsh|��t��}t�|�}|j�|�|jjdd�|j�	�dksFJ�|�	�|j
dks\J�|��dS)NTr�r�r�)r�rNrOrr0r7Z	setTargetr�r|r�r�rV)rZ
new_streamZnew_stream_handlerrrr�test_target_reset�s
z#MemoryHandlerTest.test_target_resetcCs|j�|j�dSr)rr"r�rrrrr�sz!MemoryHandlerTest._test_log_debugN)
r9r:r;r<rIrr�r�r�r�rrrrr��sr�c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�TempHandlerTestz,Tests for certbot._internal.log.TempHandler.cCsd|_ddlm}|�|_dS)NFrrG)�closedrrHr7)rrHrrrrIszTempHandlerTest.setUpcCs|j��dSrr�rrrrrszTempHandlerTest.tearDowncCst�|jjd�sJ�dS)Ni�)rZcheck_permissionsr7rRrrrr�test_permissionssz TempHandlerTest.test_permissionscCs"|j��tj�|jj�rJ�dSr)r7rVr	rRr[rrrr�test_deletes
zTempHandlerTest.test_deletecCs@|j�t���|j��tj�|jj�s.J�t�|jj�dSr)	r7�emitrrTrVr	rRr[�removerrrr�test_no_deletes
zTempHandlerTest.test_no_deleteN)	r9r:r;r<rIrr�r�r�rrrrr�sr�c@s.eZdZdZedd��Ze�d�dd��ZdS)�PreArgParseExceptHookTestz:Tests for certbot._internal.log.pre_arg_parse_except_hook.cOsddlm}||i|��S)Nr)�pre_arg_parse_except_hook)rr�)r
rrr�rrrrszPreArgParseExceptHookTest._callrWcCsNt��}d}ddi}|j|g|�Ri|��|j|i|��|jjdd�dS)N)�somerr�rTr�)rrTrr)r�)rZmock_post_arg_parse_except_hookr5rrrrrr8#s��z!PreArgParseExceptHookTest.test_itN)	r9r:r;r<r=rrr>r8rrrrr�s

r�c@s~eZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
ddd�Zdd�Zdd�Zdd�ZdS)�PostArgParseExceptHookTestz;Tests for certbot._internal.log.post_arg_parse_except_hook.cOsddlm}||i|��S)Nr)�post_arg_parse_except_hook)rr�)r
rrr�rrrr2sz PostArgParseExceptHookTest._callcCsd|_d|_dS)Nztest error messagezfoo.log)�	error_msgr$rrrrrI7sz PostArgParseExceptHookTest.setUpcCs2t}|j|dd�\}}|�|j|�|�|�dS�NF�r")�
BaseException�_test_common�_assert_exception_logged�error�_assert_logfile_output�r�exc_type�mock_logger�outputrrr�test_base_exception;sz.PostArgParseExceptHookTest.test_base_exceptioncCs2t}|j|dd�\}}|�|j|�|�|�dS)NTr�)�
ValueErrorr�r�r�r�r�rrrr_Asz%PostArgParseExceptHookTest.test_debugcCs6t}|j|ddd�\}}|�|j|�d|vs2J�dS)NT)r"r#�See the logfile)r�r�r�r�r�rrrr`Gsz%PostArgParseExceptHookTest.test_quietcCs6tj}|j|dd�\}}|�|j|�|�||�dSr�)rZPluginErrorr�r�r"�_assert_quiet_outputr�rrr�test_custom_errorMsz,PostArgParseExceptHookTest.test_custom_errorcsZtttj����fdd�}|j|dd�\}}|�|jtj�|�||�tj	|vsVJ�dS)Ncstjj�|d�S)z6Wraps ACME errors so the constructor takes only a msg.)Zdetail)rrhZ	with_code)r��Z	acme_coderr�get_acme_errorWszBPostArgParseExceptHookTest.test_acme_error.<locals>.get_acme_errorFr�)
�next�iterrZERROR_CODESr�r�r"rhr�ZERROR_PREFIX)rr�r�r�rr�r�test_acme_errorSsz*PostArgParseExceptHookTest.test_acme_errorcCs4t}|j|dd�\}}|�|j|�|�||�dSr�)r�r�r�r"r�r�rrr�test_other_error`sz+PostArgParseExceptHookTest.test_other_errorcCs&t}|j|dd�\}}|j�d�dS)NFr�zExiting due to user request.)�KeyboardInterruptr�r�r)r�rrr�test_keyboardinterruptfsz1PostArgParseExceptHookTest.test_keyboardinterruptFc	st����fdd�}z||j��Wn�ty�t��}t�d���}||j_	t�d���hz|j
||||jd��Wn2ty�}z��
t|��WYd}~nd}~00|�d�Wd�n1s�0YWd�n1s�0YYn0���}||fS)z,Returns the mocked logger and stderr output.cs��|d�dS)zWrite error to mock_err.rN)�write)rZ
unused_kwargs�Zmock_errrr�	write_errosz:PostArgParseExceptHookTest._test_common.<locals>.write_errzcertbot._internal.log.loggerz certbot._internal.log.sys.stderrr!NzSystemExit not raised.)rNrOr�r�r&�exc_inforr>r�rgrr$�
SystemExitr�rirjr�)	rZ
error_typer"r#r�r�r�Zexit_errr�rr�rr�ks$
�$Lz'PostArgParseExceptHookTest._test_commoncCsF|js
J�|jd}d|vs J�|d}|tjtjf}||ksBJ�dS)Nrr�)rZrwrr2)rZlog_funcr�Zcall_kwargsZactual_exc_infoZexpected_exc_inforrrr��s

z3PostArgParseExceptHookTest._assert_exception_loggedcCsd|vsJ�|j|vsJ�dS)Nr�)r$)rr�rrrr��sz1PostArgParseExceptHookTest._assert_logfile_outputcCs.|jjdusJ�|jjsJ�|j|vs*J�dS)NF)�	exceptionrZr"r�)rr�r�rrrr��sz/PostArgParseExceptHookTest._assert_quiet_outputN)F)r9r:r;r<r=rrIr�r_r`r�r�r�r�r�r�r�r�rrrrr�0s


	r�c@s4eZdZdZedd��Zdd�Zdd�Zdd	�Zd
S)�ExitWithAdviceTestz1Tests for certbot._internal.log.exit_with_advice.cOsddlm}||i|��S)Nr)�exit_with_advice)rr�)r
rrr�rrrr�szExitWithAdviceTest._callcCsDtj�|jd�}t|d���|�|�}d|vs4J�||vs@J�dS)NrdrC�logfiles)r	rRrX�tempdirrLrVr�)rrv�err_strrrr�
test_log_file�s

z ExitWithAdviceTest.test_log_filecCs*|�|j�}d|vsJ�|j|vs&J�dS)Nr�)r�r�)rr�rrr�test_log_dir�szExitWithAdviceTest.test_log_dirc
OsPz|j|i|��Wn,ty@}zt|�WYd}~Sd}~00|�d�dS)NzSystemExit was not raised.)rr�rirj)rrrrlrrrr��s
zExitWithAdviceTest._test_commonN)	r9r:r;r<r=rr�r�r�rrrrr��s
r��__main__r)(r<rNrZlogging.handlersr&rt�typingrZunittestrZpytestZacmerZcertbotrrZcertbot._internalrZcertbot.compatrr	Z
certbot.testsZ	test_utilZTestCaser
ZConfigTestCaser@raryr�r�r�r�ZTempDirTestCaser�r9�exit�mainr%�__file__rrrr�<module>s6+E3 +h

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