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

�]�T�@s�dZddlZddlZddlZddlZddlZddlZddlmZddl	m
mZddl
mZddlmZddlmZGdd�dej�ZGd	d
�d
ej�ZGdd�dej�ZGd
d�dej�ZGdd�dej�ZGdd�dej�ZzeZWn$ek
�rddlZejZYnXGdd�dej�ZGdd�dej�Z Gdd�dej�Z!Gdd�dej�Z"Gdd�dej�Z#Gdd�dej�Z$Gdd �d ej�Z%Gd!d"�d"ej�Z&Gd#d$�d$ej�Z'e(d%k�r�e�)�dS)&zTests for certbot.util.�N)�
reload_module)�errors)�os)�
filesystemc@sReZdZdZedd��Ze�d�dd��Ze�d�dd��Z	e�d�d	d
��Z
dS)�
RunScriptTestz"Tests for certbot.util.run_script.cCsddlm}||�S)Nr)�
run_script)�certbot.utilr)�clsZparamsr�r
�9/usr/lib/python3/dist-packages/certbot/tests/util_test.py�_callszRunScriptTest._call�certbot.util.subprocess.PopencCs>d|�_d|�j_|�dg�\}}|�|d�|�|d�dS)z.These will be changed soon enough with reload.r)�stdout�stderr�testrrN)�
returncode�communicate�return_valuer�assertEqual)�self�
mock_popen�out�errr
r
r�test_defaults

zRunScriptTest.test_defaultcCst|_|�tj|jdg�dS)Nr)�OSError�side_effect�assertRaisesr�SubprocessErrorr�rrr
r
r�test_bad_process"szRunScriptTest.test_bad_processcCs*d|�j_d|�_|�tj|jdg�dS)N)�r �r)rrrrrrrrr
r
r�test_failure(s
zRunScriptTest.test_failureN)�__name__�
__module__�__qualname__�__doc__�classmethodr�mock�patchrrr"r
r
r
rrs

	
rc@s,eZdZdZedd��Zdd�Zdd�ZdS)	�
ExeExistsTestz"Tests for certbot.util.exe_exists.cCsddlm}||�S)Nr)�
exe_exists)rr+)r	Zexer+r
r
rr3szExeExistsTest._callc	Cs.tjddd��|�|�d��W5QRXdS)N�%certbot.util.filesystem.is_executableT�r�/path/to/exe)r(r)�
assertTruer�rr
r
r�test_exe_exists8szExeExistsTest.test_exe_existsc	Cs.tjddd��|�|�d��W5QRXdS)Nr,Fr-r.)r(r)�assertFalserr0r
r
r�test_exe_not_exists<sz!ExeExistsTest.test_exe_not_existsN)r#r$r%r&r'rr1r3r
r
r
rr*0s

r*csHeZdZdZedd��Z�fdd�Ze�d�e�d�dd	���Z	�Z
S)
�LockDirUntilExitz+Tests for certbot.util.lock_dir_until_exit.cOsddlm}|||�S)Nr)�lock_dir_until_exit)rr5)r	�args�kwargsr5r
r
rrCszLockDirUntilExit._callcs$tt|���ddl}t|j�dS�Nr)�superr4�setUprr�util)r�certbot��	__class__r
rr:HszLockDirUntilExit.setUpzcertbot.util.loggerzcertbot.util.atexit_registercCs�tj�|jd�}t�|�|�|j�|�|�|�|�|�|jd�|j	dd}ddl
m}|�t
|j�dk�|�|�|jjd�dS)N�subdirr!r)r;�)r�path�join�tempdirr�mkdirrr�
call_count�	call_argsr<r;r/�lenZ_LOCKS�debug)rZ
mock_registerZmock_loggerr?Zregistered_funcr;r
r
r�test_itNs


zLockDirUntilExit.test_it)r#r$r%r&r'rr:r(r)rI�
__classcell__r
r
r=rr4As
r4c@s<eZdZdZdd�Ze�d�dd��Ze�d�dd	��Zd
S)�SetUpCoreDirTestz/Tests for certbot.util.make_or_verify_core_dir.cOsddlm}|||�S)Nr)�set_up_core_dir)rrL)rr6r7rLr
r
rrgszSetUpCoreDirTest._callz certbot.util.lock_dir_until_exitcCsBtj�|jd�}|�|dd�|�tj�|��|�|jd�dS)N�new�Fr!)	rrArBrCrr/�existsrrE)rZ	mock_lockZnew_dirr
r
r�test_successkszSetUpCoreDirTest.test_successzcertbot.util.make_or_verify_dircCs"t|_|�tj|j|jdd�dS)NrNF)rrrr�ErrorrrC)rZmock_make_or_verifyr
r
rr"rszSetUpCoreDirTest.test_failureN)	r#r$r%r&rr(r)rPr"r
r
r
rrKds
rKcsHeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	�Z
S)�MakeOrVerifyDirTestz�Tests for certbot.util.make_or_verify_dir.

    Note that it is not possible to test for a wrong directory owner,
    as this testing script would have to be run as root.

    cs2tt|���tj�|jd�|_t�|jd�dS)N�foo�)	r9rRr:rrArBrCrrDr0r=r
rr:�szMakeOrVerifyDirTest.setUpcCsddlm}|||dd�S)Nr)�make_or_verify_dirT)�strict)rrU)rZ	directory�moderUr
r
rr�szMakeOrVerifyDirTest._callcCsDtj�|jd�}|�|d�|�tj�|��|�t�|d��dS)N�bari�)	rrArBrCrr/�isdirr�
check_mode)rrAr
r
r�test_creates_dir_when_missing�sz1MakeOrVerifyDirTest.test_creates_dir_when_missingcCs&|�|jd�|�t�|jd��dS)NrT)rrAr/rrZr0r
r
r�(test_existing_correct_mode_does_not_fail�sz<MakeOrVerifyDirTest.test_existing_correct_mode_does_not_failcCs|�tj|j|jd�dS)N�)rrrQrrAr0r
r
r�test_existing_wrong_mode_fails�sz2MakeOrVerifyDirTest.test_existing_wrong_mode_failsc	Cs8tj�td�� }t�|_|�t|jdd�W5QRXdS)N�makedirsrXi�޻)r(r)�objectrrrrr)rr_r
r
r�test_reraises_os_error�sz*MakeOrVerifyDirTest.test_reraises_os_error)r#r$r%r&r:rr[r\r^rarJr
r
r=rrRxsrRcsBeZdZdZ�fdd�Zd
dd�Zdd�Zd	d
�Zdd�Z�Z	S)�UniqueFileTestz#Tests for certbot.util.unique_file.cs$tt|���tj�|jd�|_dS�Nzfoo.txt)r9rbr:rrArBrC�default_namer0r=r
rr:�szUniqueFileTest.setUprTcCsddlm}||j|�S)Nr)�unique_file)rrerd)rrWrer
r
rr�szUniqueFileTest._callc	CsF|��\}}|�d�|��t|��}|�|��d�W5QRXdS)NrX)r�write�close�openr�read)r�fd�name�fr
r
r�test_returns_fd_for_writing�s


z*UniqueFileTest.test_returns_fd_for_writingcCsT|�d�\}}|�d�\}}|�t�|d��|�t�|d��|��|��dS)NrNrT)rr/rrZrg)r�fd1�name1�fd2�name2r
r
r�test_right_mode�szUniqueFileTest.test_right_modec
Cs�|��\}}|��\}}|��\}}|�||�|�||�|�||�|�tj�|�|j�|�tj�|�|j�|�tj�|�|j�tj�|�}|�|�	d��tj�|�}|�|�	d��tj�|�}	|�|	�	d��|�
�|�
�|�
�dSrc)rZassertNotEqualrrrA�dirnamerC�basenamer/�endswithrg)
rrnrorprqZfd3Zname3Z	basename1Z	basename2Z	basename3r
r
r�test_default_exists�s$z"UniqueFileTest.test_default_exists)rT)
r#r$r%r&r:rrmrrrvrJr
r
r=rrb�s
rbc@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)
�UniqueLineageNameTestz+Tests for certbot.util.unique_lineage_name.�cCsddlm}||j||�S)Nr)�unique_lineage_name)rryrC)r�filenamerWryr
r
rr�szUniqueLineageNameTest._callcCsB|�d�\}}|�t|t��|�tj�|jd�|�|�	�dS)N�wowzwow.conf)
rr/�
isinstance�	file_typerrrArBrCrg)rrlrAr
r
r�
test_basic�sz UniqueLineageNameTest.test_basiccCs|g}tj�d�D]}|�|�d��q|d\}}|�t|t��|�t|tj��|�d|k�|D]\}}|�	�qfdS)N�
r{���z
wow-0009.conf)
�sixZmoves�range�appendrr/r|r}Zstring_typesrg)r�items�_rlrkr
r
r�
test_multiple�sz#UniqueLineageNameTest.test_multiplec	Cs4tjdttj�d��|�t|jd�W5QRXdS)Nzcertbot.compat.filesystem.open)rr{)r(r)r�errnoZEIOrrr0r
r
rr"�sz"UniqueLineageNameTest.test_failureN)rx)r#r$r%r&rr~r�r"r
r
r
rrw�s

rwcs@eZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Z�Z	S)�SafelyRemoveTestz%Tests for certbot.util.safely_remove.cs$tt|���tj�|jd�|_dS)NrS)r9r�r:rrArBrCr0r=r
rr:�szSafelyRemoveTest.setUpcCsddlm}||j�S)Nr)�
safely_remove)rr�rA)rr�r
r
rr�szSafelyRemoveTest._callc	Cs8t|jd��W5QRX|��|�tj�|j��dS)N�w)rhrArr2rrOr0r
r
r�test_existss
zSafelyRemoveTest.test_existscCs |��|�tj�|j��dS�N)rr2rrArOr0r
r
r�test_missingszSafelyRemoveTest.test_missingc	Cs.t�d��}t|_|�t|j�W5QRXdS)Nzcertbot.util.os.remove)r(r)rrrr)rZmock_remover
r
r�test_other_error_passthroughsz-SafelyRemoveTest.test_other_error_passthrough)
r#r$r%r&r:rr�r�r�rJr
r
r=rr��sr�c@s,eZdZdZedd��Zdd�Zdd�ZdS)	�
SafeEmailTestzTest safe_email.cCsddlm}||�S)Nr)�
safe_email)rr�)r	�addrr�r
r
rrszSafeEmailTest._callcCs.dddg}|D]}|�|�|�d|�qdS)Nzcertbot@certbot.orgztbd.ade@gmail.comzabc_def.jdk@hotmail.museum�
%s failed.)r/r�rZaddrsr�r
r
r�test_valid_emailss�zSafeEmailTest.test_valid_emailscCs.dddg}|D]}|�|�|�d|�qdS)Nzcertbot@certbot..orgz.tbd.ade@gmail.comz~/abc_def.jdk@hotmail.museumr�)r2rr�r
r
r�test_invalid_emails"s�z!SafeEmailTest.test_invalid_emailsN)r#r$r%r&r'rr�r�r
r
r
rr�s

	r�c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�AddDeprecatedArgumentTestzTest add_deprecated_argument.cCst��|_dSr�)�argparse�ArgumentParser�parserr0r
r
rr:.szAddDeprecatedArgumentTest.setUpcCs ddlm}||jj||�dS)Nr)�add_deprecated_argument)rr�r��add_argument)rZ
argument_name�nargsr�r
r
rr1szAddDeprecatedArgumentTest._callc	Csp|�dd�t�d��}|j�dg�W5QRX|�|jd�|�d|jddk�|�d|jdd�dS)N�--old-optionr�certbot.util.logger.warningr!�
is deprecated�	rr(r)r��
parse_argsrrEr/rF�r�	mock_warnr
r
r�test_warning_no_arg5sz-AddDeprecatedArgumentTest.test_warning_no_argc	Csr|�dd�t�d��}|j�ddg�W5QRX|�|jd�|�d|jddk�|�d|jdd�dS)Nr�r!r��42r�rr�r�r
r
r�test_warning_with_arg=sz/AddDeprecatedArgumentTest.test_warning_with_argc	Csl|�dd�t��}tjd|d��.z|j�dg�Wntk
rJYnXW5QRX|�d|�	�k�dS)Nr�r@z
sys.stdout)rMz-h)
rr��StringIOr(r)r�r��
SystemExitr/�getvalue)rrr
r
r�	test_helpEsz#AddDeprecatedArgumentTest.test_helpcCs|�t�dS)z�Test when ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a set.

        This variable is a set in configargparse versions < 0.12.0.

        N)�_test_constant_common�setr0r
r
r�test_set_constantOsz+AddDeprecatedArgumentTest.test_set_constantcCs|�t�dS)z�Test when ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a tuple.

        This variable is a tuple in configargparse versions >= 0.12.0.

        N)r��tupler0r
r
r�test_tuple_constantWsz-AddDeprecatedArgumentTest.test_tuple_constantc	CsLt�d��&}|�|_|�dd�|�dd�W5QRX|�t|j�d�dS)Nzcertbot.util.configargparser�r!z
--old-option2r@)r(r)Z#ACTION_TYPES_THAT_DONT_NEED_A_VALUErrrG)r�typZmock_configargparser
r
rr�_s�z/AddDeprecatedArgumentTest._test_constant_commonN)r#r$r%r&r:rr�r�r�r�r�r�r
r
r
rr�,s
r�c@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�EnforceLeValidityzTest enforce_le_validity.cCsddlm}||�S)Nr)�enforce_le_validity)rr�)r�domainr�r
r
rrjszEnforceLeValidity._callcCs|�tj|jd�dS)Nz..�rr�ConfigurationErrorrr0r
r
r�test_sanitynszEnforceLeValidity.test_sanitycCs|�tj|jd�dS)Nzhello_world.example.comr�r0r
r
r�test_invalid_charsqs
�z$EnforceLeValidity.test_invalid_charscCs|�tj|jd�dS)Nz-a.example.comr�r0r
r
r�test_leading_hyphenus
�z%EnforceLeValidity.test_leading_hyphencCs|�tj|jd�dS)Nza-.example.comr�r0r
r
r�test_trailing_hyphenys
�z&EnforceLeValidity.test_trailing_hyphencCs|�tj|jd�dS)NZcomr�r0r
r
r�test_one_label}sz EnforceLeValidity.test_one_labelcCs|�|�d�d�dS)Nzexample.com�rrr0r
r
r�test_valid_domain�sz#EnforceLeValidity.test_valid_domaincCs(|�tj|jd�|�tj|jd�dS)Nzhttp://example.comzhttps://example.comr�r0r
r
r�test_input_with_scheme�sz(EnforceLeValidity.test_input_with_schemecCs|�|�d�d�dS)Nzhttp.example.comr�r0r
r
r�!test_valid_input_with_scheme_name�sz3EnforceLeValidity.test_valid_input_with_scheme_nameN)
r#r$r%r&rr�r�r�r�r�r�r�r�r
r
r
rr�hsr�c@speZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�EnforceDomainSanityTestzTest enforce_domain_sanity.cCsddlm}||�S)Nr)�enforce_domain_sanity)rr�)rr�r�r
r
rr�szEnforceDomainSanityTest._callcCs|�tj|jd�d��dS)N�eichhörnchen.example.comzutf-8)rrr�r�encoder0r
r
r�test_nonascii_str�s�z)EnforceDomainSanityTest.test_nonascii_strcCs|�tj|jd�dS)Nr�r�r0r
r
r�test_nonascii_unicode�s�z-EnforceDomainSanityTest.test_nonascii_unicodecCsd}|�tj|j|�dS)NAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar�)rZlong_domainr
r
r�
test_too_long�s�z%EnforceDomainSanityTest.test_too_longcCsd�dddd�}|�|�dS)Nz{0}.{1}.{2}.{3}�?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�?bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbZ?cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccZ?ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd��formatr)rZnot_too_long_domainr
r
r�test_not_too_long�sz)EnforceDomainSanityTest.test_not_too_longcCsd}|�tj|j|�dS)Nzfizz..example.comr�)rZempty_label_domainr
r
r�test_empty_label�s�z(EnforceDomainSanityTest.test_empty_labelcCsd}|�tj|j|�dS)Nz
example.com..r�)rZempty_trailing_label_domainr
r
r�test_empty_trailing_label�s�z1EnforceDomainSanityTest.test_empty_trailing_labelcCsd}|�tj|j|�dS)N�@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar��rZlong_label_domainr
r
r�test_long_label_1�s�z)EnforceDomainSanityTest.test_long_label_1cCs"d�dd�}|�tj|j|�dS)N�{0}.{1}.comr�r�)r�rrr�rr�r
r
r�test_long_label_2�s�z)EnforceDomainSanityTest.test_long_label_2cCsd�dd�}|�|�dS)Nr�r�r�r�)rZnot_too_long_label_domainr
r
r�test_not_long_label�sz+EnforceDomainSanityTest.test_not_long_labelcCsd}|�tj|j|�dS)Nr r�)rZempty_domainr
r
r�test_empty_domain�s�z)EnforceDomainSanityTest.test_empty_domaincCs|�d�dS)Nzthis.is.xn--ls8h.tld)rr0r
r
r�test_punycode_ok�sz(EnforceDomainSanityTest.test_punycode_okN)r#r$r%r&rr�r�r�r�r�r�r�r�r�r�r�r
r
r
rr��sr�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�IsWildcardDomainTestzTests for is_wildcard_domain.cCsd|_d|_dS)Nz
*.example.orgzexample.org)�wildcard�no_wildcardr0r
r
rr:�szIsWildcardDomainTest.setUpcCsddlm}||�S)Nr)�is_wildcard_domain)rr�)rr�r�r
r
rr�szIsWildcardDomainTest._callcCs,|�|�|j��|�|�|j����dSr�)r2rr�r�r0r
r
r�test_no_wildcard�sz%IsWildcardDomainTest.test_no_wildcardcCs,|�|�|j��|�|�|j����dSr�)r/rr�r�r0r
r
r�
test_wildcard�sz"IsWildcardDomainTest.test_wildcardN)r#r$r%r&r:rr�r�r
r
r
rr��s
r�c@seZdZdZe�d�e�ej	�
d�d�dd���Ze�d�e�ej	�
d�d�dd���Ze�d�e�ej	�
d�d�d	d
���Z
e�d�e�d�e�ej	�
d�d�dd
����Ze�d�dd��Ze�d�e�ej	�
d�d�dd���Ze�d�e�ej	�
d�d�dd���ZdS)�
OsInfoTestz Test OS / distribution detectionzcertbot.util.distro�linuxzrequires LinuxcCs>ddlm}d|j_|��}|�t|�d�|�d|k�dS)Nrzfirst debian third�Zdebian)rr;ZlikerZget_systemd_os_likerrGr/)r�m_distro�cbutilZid_likesr
r
r�test_systemd_os_release_like�s
z'OsInfoTest.test_systemd_os_release_likec	Cs|ddlm}tjddd��@d|j_d|j_|jdd�|�|�	�d	�
|jdd���W5QRXd
|j_|�|�	�d
�dS)Nr�platform.system_alias)r�r�r�r-r )�	somethingz1.0ZcodenameT)Zpretty� Zwhatever)rr;r(r)rkr�linux_distribution�get_python_os_inforZget_os_info_uarB�rr�r�r
r
r�test_get_os_info_ua�s�
�zOsInfoTest.test_get_os_info_uac	Cs\ddlm}t�d��<}d|j_d|_|�|��d�d|j_|�|��d�W5QRXdS)Nrzplatform.system)rk�version�xr�)rkr�)r��else)rr;r(r)r�rrZget_os_info)rr�r�Z
mock_platformr
r
r�test_get_os_info�szOsInfoTest.test_get_os_infoz
warnings.warncCs$ddlm}|��|�|j�dSr8)rr;Zget_systemd_os_infor/�called)rr�r�r�r
r
r�$test_get_systemd_os_info_deprecationsz/OsInfoTest.test_get_systemd_os_info_deprecationr
cCs*ddlm}t�dd���tjddd��|�|��dd�W5QRXtjddd��Pt��}d	d
i}|jf|�||_|�|��dd�|�|��dd
�W5QRXtjddd��|�|��d�W5QRXtjddd��0tjddd��|�|��d�W5QRXW5QRXW5QRXdS)Nrzcertbot.util._USE_DISTROFr�)Z
NonSystemDr�r�r-Z
nonsystemd)�darwinr r zcommunicate.return_value)�42.42.42�errorr�r!r�)�freebsdz
9.3-RC3-p1r )r��9)�windowsr r zplatform.win32_ver)Z4242�95�2r )r�r�)	rr;r(r)rr�ZMockZconfigure_mockr)rZ
popen_mockr�Z	comm_mockZ
comm_attrsr
r
r�test_non_systemd_os_info	s<������
�z#OsInfoTest.test_non_systemd_os_infocCs,ddlm}d|j_|�|��dd�dS)Nr)r r r r��rr;r�rrr�r�r
r
r�test_python_os_info_notfound&sz'OsInfoTest.test_python_os_info_notfoundcCs(ddlm}d|j_|�|��d�dS)Nr)�testdistr�r )r�r�r�r�r
r
r�test_python_os_info_custom-sz%OsInfoTest.test_python_os_info_customN)r#r$r%r&r(r)�unittestZ
skipUnless�sys�platform�
startswithr�r�r�r�r�r�r�r
r
r
rr��s,


r�c@s<eZdZdZdd�Zedd��Zdd�Zdd	�Zd
d�Z	dS)
�AtexitRegisterTestz'Tests for certbot.util.atexit_register.cCst��|_d|_ddi|_dS)N)�hiZanswer�*)r(Z	MagicMock�funcr6r7r0r
r
rr:7s
zAtexitRegisterTest.setUpcOsddlm}|||�S)Nr)�atexit_register)rr)r	r6r7rr
r
rr<szAtexitRegisterTest._callcCs$|�t���|jj|j|j�dSr�)�_test_commonr�getpidrZassert_called_withr6r7r0r
r
r�test_calledAszAtexitRegisterTest.test_calledcCs|jdd�|�|jj�dS)Nr�)�initial_pid)rr2rr�r0r
r
r�test_not_calledEsz"AtexitRegisterTest.test_not_calledc
Cs~t�d|��ht�d��}|j|jf|j�|j�W5QRX|�|jj�|jj	\}}|d}||dd�|�W5QRXdS)Nzcertbot.util._INITIAL_PIDzcertbot.util.atexitrr!)
r(r)rrr6r7r/�registerr�rF)rrZmock_atexitr6r7Zatexit_funcr
r
rrIs"zAtexitRegisterTest._test_commonN)
r#r$r%r&r:r'rrrrr
r
r
rr�5s
r��__main__)*r&r�r�r�r�r(r�Z	six.movesrZcertbot.tests.utilZtestsr;Z	test_utilr<rZcertbot.compatrrZTestCaserr*ZTempDirTestCaser4rKrRrb�filer}�	NameError�io�
TextIOWrapperrwr�r�r�r�r�r�r�r�r#�mainr
r
r
r�<module>sB#%4<#;[ 


Anon7 - 2021