JFIF$        dd7 

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

a

}|�g`f�@s�dZddlZddlZddlmZddlZddlZddlZddl	m
Z
mZddlZddlm
Z
ddlZddlmZddlmZddlmZmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddl m!m"Z#ddl m$Z$ej%�&�Z'Gdd�de$�Z(Gdd�dej)�Z*e+e
d�dd�Z,e+e
ed�dd�Z-Gdd�dej)�Z.e/dk�r|e�0e�1ej2dd�e3g��dS)z Tests for certbot._internal.cli.�N)�reload)�Any�List)�mock)�
challenges)�errors)�ArgumentSource�NamespaceConfig)�cli)�	constants)�flag_default)�disco)�
filesystem)�os)�TempDirTestCasec@seZdZdZdd�ZdS)�TestReadFilezTest cli.read_filec	Cs�t��}z�t�|j�t�tj�|jd��}tj�|�}t	�
tj��t
�|�Wd�n1sd0Yd}t|d��}|�|�Wd�n1s�0Yt
�|�\}}Wt�|�nt�|�0dS)N�foosbar
�wb)r�getcwd�chdirZtempdirr�realpath�path�join�relpath�pytest�raises�argparse�ArgumentTypeErrorr
Z	read_file�open�write)�selfZcurr_dirZ	real_path�
relative_pathZ
test_contents�fr�contents�r$�D/usr/lib/python3.9/site-packages/certbot/_internal/tests/cli_test.py�test_read_files((zTestReadFile.test_read_fileN)�__name__�
__module__�__qualname__�__doc__r&r$r$r$r%rsrc@seZdZdZdd�ZdS)�FlagDefaultTestzTests cli.flag_defaultcCstjdkrndS)N�nt)r�name�r r$r$r%�test_default_directories@s
z(FlagDefaultTest.test_default_directoriesN)r'r(r)r*r/r$r$r$r%r+=sr+)�attr�valuecCsdS�Nr$)�	namespacer0r1r$r$r%�assert_set_by_user_with_valueKsr4)r0r1�sourcecCsdSr2r$)r3r0r1r5r$r$r%�assert_value_and_sourcePsr6c@s�eZdZdZeeeed�dd��Zeeeed�dd��Z	eed�dd	�Z
e�d
�dd��Z
d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Ze�d/�d0d1��Ze�d2�d3d4��Z d5d6�Z!d7d8�Z"d9d:�Z#d;d<�Z$d=d>�Z%d?d@�Z&dAdB�Z'dCdD�Z(dEdF�Z)dGdH�Z*dIdJ�Z+dKdL�Z,dMdN�Z-dOdP�Z.dQdR�Z/dSdT�Z0dUdV�Z1dWdX�Z2dYdZ�Z3d[d\�Z4d]d^�Z5e�d/�d_d`��Z6dadb�Z7dcdd�Z8deS)f�	ParseTestzTest the cli args entrypoint)�args�returncCst�t|�S)z)Get result of cli.prepare_and_parse_args.)r
�prepare_and_parse_args�PLUGINS�r8r$r$r%�_unmocked_parseXszParseTest._unmocked_parsecCs6t���t�|�Wd�S1s(0YdS)zJMocks certbot._internal.display.obj.get_display and calls _unmocked_parse.N)�	test_util�patch_display_utilr7r=r<r$r$r%�parse]s
zParseTest.parser<cs�t����fdd�}tjd�d���t���x}||�j_t�d��Dt�	t
��|�|�Wd�n1sn0YWd�n1s�0YWd�n1s�0YWd�n1s�0Y���S)z8Run a command, and return the output string for scrutinycs��|�dSr2)r)�messager8�kwargs��outputr$r%�	write_msghsz)ParseTest._help_output.<locals>.write_msgz!certbot._internal.main.sys.stdout)�newz!certbot._internal.main.sys.stderrN)
�io�StringIOr�patchr>r?Znotification�side_effectrr�
SystemExitr=�getvalue)r r8rEZmock_get_utilityr$rCr%�_help_outputcs

�zParseTest._help_outputz*certbot._internal.cli.helpful.flag_defaultc	s�t���������fdd�}||_|�dg�}t|dgtj�t�j	d��}|�
d�Wd�n1sl0Y|�dg�}t|ddgtj�|�dg�}t|dgtj�Wd�n1s�0YdS)	Ncs |dkrt�tj|�S�jgS)NZconfig_files)�copy�deepcopyrZCLI_DEFAULTSr-)�v��
tmp_configr$r%�<lambda>zs�z0ParseTest.test_cli_ini_domains.<locals>.<lambda>�certonly�domains�wzdomains = example.com�example.com�renew)
�tempfile�NamedTemporaryFile�closerJr@r6r�DEFAULTrr-r�CONFIG_FILE�RUNTIME)r Zmock_flag_defaultZshimr3�file_hr$rQr%�test_cli_ini_domainsts

�(zParseTest.test_cli_ini_domainscCs|�g�}dD]}qdS)N)�
config_dirZlogs_dirZwork_dir�r@)r r3�dr$r$r%�test_no_args�s
zParseTest.test_no_argscCsZd}d}d}d}t�d��,|�dd|ddd	dd
dg	�}Wd�n1sL0YdS)N�cert�key�chain�	fullchainzcertbot._internal.main.install�installz--cert-pathz
--key-pathz--chain-pathz--fullchain-path)rrIr@)r rerfrgrhr3r$r$r%�test_install_abspath�s
�$zParseTest.test_install_abspathcCs�|�dg�|�ddg�}|�ddg�}dtvr0|�dg�}dtvrFn|�ddg�}|�ddg�}|�ddg�}|�ddg�}|�dd	g�}|�ddg�}|�dd
g�}|�dg�}dS)N�--help�all�-hZnginx�pluginsrXZ
automation�revokeri�register)rMr;�r �outr$r$r%�	test_help�s 	zParseTest.test_helpcCs:|�dg�|�ddg�}|�ddg�}|�ddg�}dS)N�helprlriro)rMrqr$r$r%�test_help_no_dashes�s
zParseTest.test_help_no_dashescCs�ddg}|�|�}t|ddg�ddg}|�|�}t|ddg�ddg}|�|�}t|dgd��ddg}|�|�}t|ddg�ddg}|�|�}t|ddg�dd	g}|�|�}t|ddd
g�dS)Nz-drWrUztrailing.period.com.ztrailing.period.comz-example.com,another.net,third.org,example.com)rW�another.netz	third.orgz	--domainsz#example.com,another.net,example.comrv�r@r4)r �
short_argsr3Z	long_argsr$r$r%�test_parse_domains�s(


�


zParseTest.test_parse_domainsc	Cs�ddg}|�|�}tjjtjjg}t|d|�ddg}t�d��Dt�	t
��|�|�Wd�n1sl0YWd�n1s�0YdS)Nz--preferred-challengesz	http, dns�pref_challszjumping-over-the-moonz
sys.stderr)r@r�HTTP01�typZDNS01r4rrIrrrK)r rxr3Zexpectedr$r$r%�test_preferred_challengess
z#ParseTest.test_preferred_challengescCs|�d���}t|dd�dS)N�--server example.com�serverrW)r@�splitr4�r r3r$r$r%�test_server_flagszParseTest.test_server_flagcCs,|�dg�}t|dd�t|ddtj�dS)N�
--must-staple�must_stapleT�staple)r@r4r6rr^r�r$r$r%�test_must_staple_flagszParseTest.test_must_staple_flagcCs*|�ddg�}t|dd�t|dd�dS)Nr�z
--staple-ocspr�Tr�rwr�r$r$r%�&test_must_staple_and_staple_ocsp_flagssz0ParseTest.test_must_staple_and_staple_ocsp_flagsc
CsZz$|�|�|�d�d�|���Wn0tjyT}z|D]}q:WYd}~n
d}~00dS)Nz6The following flags didn't conflict with --server: {0}z, )r@Zfail�formatrr�Error)r Zparser_argsZconflicting_args�error�argr$r$r%�_check_server_conflict_message"s
��z(ParseTest._check_server_conflict_messagecCsFdg}|�|�}t|dd�t|dtj�|d��7}|�|d�dS)N�	--staging�stagingTrr~)r@r4r�STAGING_URIr�r�)r rxr3r$r$r%�test_staging_flag-s
zParseTest.test_staging_flagcCs�t|dd�t|ddtj�t|ddtj�t|dtjtj�|rdt|ddtj�t|ddtj�n t|ddtj�t|ddtj�dS)	N�dry_runTZbreak_my_certsr�rZtosZregister_unsafely_without_emailF)r4r6rr^rr�r\)r r3Zexisting_accountr$r$r%�_assert_dry_run_flag_worked6sz%ParseTest._assert_dry_run_flag_workedcCs�t��}d�|���}t�tj��|�|�Wd�n1sB0Y|�	|�|dg�d�|�	|�|dg�d�|�	|�|dg�d�t
j�|t
j�}t�|�t�t
j�|d��|�	|�|dg�d�|�	|�|dg�d�|�	|�|dg�d�|dg7}|�|dd	g�}t|d
d	�|�|dt
jg�}t|d
t
j�|�|dt�d
�g�}t|d
t
jtj�dg}|�|gd�|�dS)
Nz--dry-run --config-dir {0}ZauthFrTrXZfake_account_dirT�--serverrWrr�)r�rWr�)rYZmkdtempr�r�rrrr�r@r�rrrrZACCOUNTS_DIRr�mkdirr4r�r
rr6rr^r�)r rarxZaccount_dir�config�	conflictsr$r$r%�test_dry_run_flagCs<(���

�zParseTest.test_dry_run_flagcCs*d}t�|�}|�d�|����}d}dS)NZrsa_key_sizez--rsa-key-size {0}ra�r
rr@r�r�)r Zkey_size_optionZkey_size_valuer�Zconfig_dir_optionr$r$r%�test_user_set_rsa_key_sizeks

z$ParseTest.test_user_set_rsa_key_sizecCs|�d�}|�d�}dS)Nz--apachez--installer webrootrb)r r�r$r$r%�)test_user_set_installer_and_authenticatorws

z3ParseTest.test_user_set_installer_and_authenticatorcCs&d}t�|�}|�d�|����}dS)NZelliptic_curvez--elliptic-curve {0}r�)r Zelliptic_curve_optionZelliptic_curve_option_valuer�r$r$r%�test_user_set_ecdsa_key_option�s
z(ParseTest.test_user_set_ecdsa_key_optioncCsZd}t�|�}|�d�|����}t�t��|�d�Wd�n1sL0YdS)NZkey_typez--key-type {0}z--key-type foo)r
rr@r�r�rrrK)r Zkey_type_optionZkey_type_valuer�r$r$r%�test_user_set_invalid_key_type�s

z(ParseTest.test_user_set_invalid_key_typez&certbot._internal.hooks.validate_hookscCs"d��}tj��}t�||�}dS)Nzrenew --deploy-hook foo)r�r
�PluginsRegistry�find_allr
r:)r Zunused_mock_validate_hooksr8rnr�r$r$r%�test_user_set_deploy_hook�s
z#ParseTest.test_user_set_deploy_hookz3certbot._internal.plugins.webroot._validate_webrootcCs(d��}d|_tj��}t�||�}dS)Nz%renew -w /var/www/html -d example.comz
/var/www/html)r�Zreturn_valuer
r�r�r
r:)r Zmock_validate_webrootr8rnr�r$r$r%�test_user_set_webroot_map�s

z#ParseTest.test_user_set_webroot_mapcCsLtj��D]\}}|�d|g�}q
tj��D]\}}|�d|��g�}q,dS)Nz--reason)rZREVOCATION_REASONS�itemsr@�upper)r �reason�coder3r$r$r%�test_encode_revocation_reason�sz'ParseTest.test_encode_revocation_reasoncCsxt�tj��|�d���Wd�n1s00Yt�tj��|�d���Wd�n1sj0YdS)Nzrenew --force-interactivez-n --force-interactive�rrrr�r@r�r.r$r$r%�test_force_interactive�s,z ParseTest.test_force_interactivec	Csft�d��Ht�t��|�d���Wd�n1s:0YWd�n1sX0YdS)N� certbot._internal.cli.sys.stderrz"--renew-hook foo --deploy-hook bar�rrIrrrKr@r�r.r$r$r%�test_deploy_hook_conflict�sz#ParseTest.test_deploy_hook_conflictcCs4d}|�d|d|dg�}t|d|�t|d|�dS)Nr�--renew-hook�
--deploy-hook�--disable-hook-validation�deploy_hook�
renew_hookrw�r r1r3r$r$r%�#test_deploy_hook_matches_renew_hook�s�z-ParseTest.test_deploy_hook_matches_renew_hookcCs0d}|�d|dg�}t|d|�t|d|�dS)Nrr�r�r�r�rwr�r$r$r%� test_deploy_hook_sets_renew_hook�s�z*ParseTest.test_deploy_hook_sets_renew_hookc	Csft�d��Ht�t��|�d���Wd�n1s:0YWd�n1sX0YdS)Nr�z"--deploy-hook foo --renew-hook barr�r.r$r$r%�test_renew_hook_conflict�sz"ParseTest.test_renew_hook_conflictcCs4d}|�d|d|dg�}t|d|�t|d|�dS)Nrr�r�r�r�r�rwr�r$r$r%�#test_renew_hook_matches_deploy_hook�s�z-ParseTest.test_renew_hook_matches_deploy_hookcCs$d}|�d|dg�}t|d|�dS)Nrr�r�r�rwr�r$r$r%�'test_renew_hook_does_not_set_renew_hook�s
�z1ParseTest.test_renew_hook_does_not_set_renew_hookc	Cs�t�d���t�t��|�d���Wd�n1s:0Yt�t��|�d���Wd�n1sr0YWd�n1s�0YdS)Nr�z--max-log-backups fooz--max-log-backups -42r�r.r$r$r%�test_max_log_backups_error�s
,z$ParseTest.test_max_log_backups_errorcCs&d}|�d|g�}t|dt|��dS)NZ42z--max-log-backupsZmax_log_backups)r@r4�intr�r$r$r%�test_max_log_backups_success�sz&ParseTest.test_max_log_backups_successcCsl|�g�}t|dgtj�t|dgtj�tjjg|_dg|_|�g�}t|dgtj�t|dgtj�dS)NrUrzrW)	r@r6rr\rr{r|rzrUr�r$r$r%�test_unchanging_defaults�s

z"ParseTest.test_unchanging_defaultscCs|�dg�}t|dd�dS)Nz--no-directory-hooks�directory_hooksFrwr�r$r$r%�test_no_directory_hooks_set�sz%ParseTest.test_no_directory_hooks_setcCs|�g�}t|ddtj�dS)Nr�T)r@r6rr\r�r$r$r%�test_no_directory_hooks_unset�s
z'ParseTest.test_no_directory_hooks_unsetcCs|�dg�}t|dd�dS)Nz--delete-after-revoke�delete_after_revokeTrwr�r$r$r%�test_delete_after_revoke�sz"ParseTest.test_delete_after_revokecCs|�g�}dSr2rbr�r$r$r%� test_delete_after_revoke_default�s
z*ParseTest.test_delete_after_revoke_defaultcCs|�dg�}t|dd�dS)Nz--no-delete-after-revoker�Frwr�r$r$r%�test_no_delete_after_revoke�sz%ParseTest.test_no_delete_after_revokecCs>t�tj��|�d���Wd�n1s00YdS)Nz(--allow-subset-of-names -d *.example.orgr�r.r$r$r%�test_allow_subset_with_wildcardsz)ParseTest.test_allow_subset_with_wildcardcCsdD]}dD]}qqdS)N)rmrk)rlrnzdns-route53r$)r Z	help_flagZtopicr$r$r%�test_route53_no_revertsz ParseTest.test_route53_no_revertcCs>t�tj��|�ddg�Wd�n1s00YdS)Nz--hstsz--auto-hsts)rrrr�r@r.r$r$r%�$test_parse_args_hosts_and_auto_hosts
sz.ParseTest.test_parse_args_hosts_and_auto_hostsc	Cs�td�}d}d}|�dg�}t|d|tj�t����}|��t|j	d�� }|�
d|���Wd�n1sp0Y|�dd|j	g�}t|d|tj�|�dd|j	d|g�}t|d|tj�Wd�n1s�0YdS)	Nrzconfigfile.bizzcommandline.edurTrVz	server = z-cr�)
rr@r6rr\rYrZr[rr-rr]ZCOMMAND_LINE)r Z
DEFAULT_VALUEZCONFIG_FILE_VALUEZCOMMAND_LINE_VALUEr3rRr_r$r$r%�)test_parse_with_multiple_argument_sourcess(
.��z3ParseTest.test_parse_with_multiple_argument_sourcesc	Cs�|�d�}t|ddg�t|dd�t���n}|��t|jd��}|�d�Wd�n1sb0Y|�dd	|jg�}t|ddg�Wd�n1s�0YdS)
Nz--preferred-chal dns --no-dirrzzdns-01r�FrVzpreferred-chal = dnsrTz--config)r@r4rYrZr[rr-r)r r3rRr_r$r$r%�test_abbreviated_arguments+s

(�z$ParseTest.test_abbreviated_argumentscCsB|�d�}t|ddg�tj��}t�|ddg�}t|dd�dS)Nz-d=example.comrUrW�runz--pre-hook="foo=bar"Zpre_hookz	"foo=bar")r@r4r
r�r�r
r:)r Zunsused_mock_validate_hooksr3rnr$r$r%�test_argument_with_equals>s


z#ParseTest.test_argument_with_equalscCsv|�d�}t|dd�t|dd�|�d�}t|dd�t|dd�|�d�}t|dd�t|dd�t|d	d
�dS)Nz-tvZ	text_modeTZ
verbose_count�z-tvvv�z-tvm foo@example.comZemailzfoo@example.comrwr�r$r$r%�test_adjacent_short_argsHs


z"ParseTest.test_adjacent_short_argscCs |�ddg�}t|ddg�dS)NrTz
-d foo.comrUzfoo.comrwr�r$r$r%�test_arg_with_contained_spacesVsz(ParseTest.test_arg_with_contained_spacesN)9r'r(r)r*�staticmethodr�strr	r=r@rMrrIr`rdrjrsruryr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r$r$r$r%r7Usl
:	
(		


	r7�__main__r�)4r*rrN�	importlibrZ
reload_modulerG�sysrY�typingrrZunittestrrZacmerZcertbotrZcertbot.configurationrr	Zcertbot._internalr
rZcertbot._internal.cli.cli_utilsrZcertbot._internal.pluginsr
Zcertbot.compatrrZcertbot.tests.utilZtests�utilr>rr�r�r;rZTestCaser+r�r4r6r7r'�exit�main�argv�__file__r$r$r$r%�<module>sB
 

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