a }|ägÖã@sšdZddlZddlmZddlZddlmZddlmZddl m Z ddl m Z ddl m ZGd d „d ejƒZed kr–e e ejd d…eg¡¡dS) z Tests for certbot.configuration.éN)Úmock)Úerrors)Ú constants)Úmisc)Úos)Úutilcs”eZdZdZ‡fdd„Zdd„Zdd„Zdd „Ze  d ¡d d „ƒZ d d„Z e  d ¡dd„ƒZ dd„Z dd„Zdd„Zdd„Zdd„Zdd„Z‡ZS)ÚNamespaceConfigTestz0Tests for certbot.configuration.NamespaceConfig.cs.tƒ ¡d|j_d|j_d|j_d|j_dS)NÚbarzhttps://acme-server.org:443/newiÒéá)ÚsuperÚsetUpÚconfigÚfooÚserverÚ https_portÚ http01_port©Úself©Ú __class__©úN/usr/lib/python3.9/site-packages/certbot/_internal/tests/configuration_test.pyr s  zNamespaceConfigTest.setUpcCsPd|j_ddlm}t tj¡||jjƒWdƒn1sB0YdS)Nr r©ÚNamespaceConfig) r rÚcertbot.configurationrÚpytestÚraisesrÚErrorÚ namespace)rrrrrÚtest_init_same_portss z(NamespaceConfigTest.test_init_same_portscCs0|jjdksJ‚|jjtj |jd¡ks,J‚dS)Nr Zwork)r rÚwork_dirrÚpathÚjoinZtempdirrrrrÚtest_proxy_getattrsz&NamespaceConfigTest.test_proxy_getattrcCsHddg|jj tjj¡ksJ‚d|j_gd¢|jj tjj¡ksDJ‚dS)Nzacme-server.org:443ÚnewzBhttp://user:pass@acme.server:443/p/a/t/h;parameters?query#fragment)zuser:pass@acme.server:443ÚpÚaÚtÚh)r Z server_pathÚsplitrr!ÚseprrrrrÚtest_server_path"sÿÿz$NamespaceConfigTest.test_server_pathzcertbot.configuration.constantscCsäd|_d|_d|_d|_d|_t d¡}tj  |j j ¡tj  tj  |j j |¡¡ksVJ‚tj  |j j¡tj  tj  |j jd¡¡ks„J‚tj  |j j¡tj  tj  |j jd¡¡ks²J‚tj  |j j¡tj  tj  |j jd¡¡ksàJ‚dS)NZaccZbackupsz../pÚkeysr'zacc/acme-server.org:443/new)Z ACCOUNTS_DIRZ BACKUP_DIRZIN_PROGRESS_DIRZKEY_DIRZTEMP_CHECKPOINT_DIRrZ.underscores_for_unsupported_characters_in_pathrr!Únormpathr Ú accounts_dirr"Ú config_dirÚ backup_dirr Úin_progress_dirÚtemp_checkpoint_dir)rÚmock_constantsZref_pathrrrÚtest_dynamic_dirs+s(ÿÿÿÿÿz%NamespaceConfigTest.test_dynamic_dirscCs&ddlm}d}d}d}d}tjgd¢d}||_||_||_||_||ƒ}tj   |j¡s^J‚|jtj   t  ¡|¡kszJ‚tj   |j¡sŒJ‚|jtj   t  ¡|¡ks¨J‚tj   |j¡sºJ‚|jtj   t  ¡|¡ksÖJ‚tj   |j ¡sèJ‚tj   |j¡súJ‚tj   |j¡sJ‚tj   |j¡s"J‚dS) Nrrrr Úbazz mock.server©r/r Úlogs_dirrrÚdomainsr©Úspec)rrrÚ MagicMockr/r r7rrr!Úisabsr"Úgetcwdr.r0r1r2)rrÚ config_baseÚ work_baseÚ logs_baserÚmock_namespacer rrrÚtest_absolute_paths?s6 ÿÿÿz'NamespaceConfigTest.test_absolute_pathscCspd|_d|_d|_|jjtj |jjd¡ks0J‚|jj tj |jjd¡ksNJ‚|jj tj |jjd¡kslJ‚dS)Nr&ÚlZrenewal_configs) Z ARCHIVE_DIRZLIVE_DIRZRENEWAL_CONFIGS_DIRr Údefault_archive_dirrr!r"r/Úlive_dirÚrenewal_configs_dir)rr3rrrÚtest_renewal_dynamic_dirs_s ÿz-NamespaceConfigTest.test_renewal_dynamic_dirscCs|ddlm}d}d}d}tjgd¢d}||_||_||_||ƒ}tj  |j ¡sTJ‚tj  |j ¡sfJ‚tj  |j ¡sxJ‚dS)Nrrrr r5r6r9) rrrr;r/r r7rr!r<rDrErF)rrr>r?r@rAr rrrÚtest_renewal_absolute_pathsjs z/NamespaceConfigTest.test_renewal_absolute_pathscCs8d|j_|jjjdksJ‚d|jj_|jjdks4J‚dS)Né*i9)r rrr rrrrÚtest_get_and_set_attr~s z)NamespaceConfigTest.test_get_and_set_attrcCs„|jjtj |jjtj¡ks J‚|jjtj |jjtj ¡ks@J‚|jj tj |jjtj ¡ks`J‚|jj tj |jjtj ¡ks€J‚dS)N)r Zrenewal_hooks_dirrr!r"r/rZRENEWAL_HOOKS_DIRZrenewal_pre_hooks_dirZRENEWAL_PRE_HOOKS_DIRZrenewal_deploy_hooks_dirZRENEWAL_DEPLOY_HOOKS_DIRZrenewal_post_hooks_dirZRENEWAL_POST_HOOKS_DIRrrrrÚtest_hook_directories„s( ÿÿ ÿÿ ÿÿ ÿÿz)NamespaceConfigTest.test_hook_directoriescCs,|j d¡rJ‚d|j_|j d¡s(J‚dS)NÚ somethingza value)r Ú set_by_userrLrrrrÚ"test_set_by_user_runtime_overrides’sz6NamespaceConfigTest.test_set_by_user_runtime_overridescCshddlm}||jjƒ}t t¡| d¡Wdƒn1sB0Y| i¡| d¡rdJ‚dS)NrrZwhatever) rrr rrrÚ RuntimeErrorrMZset_argument_sources)rrr rrrÚtest_set_by_user_exception—s    ( z.NamespaceConfigTest.test_set_by_user_exceptioncCs2|j d¡rJ‚|jj d¡|j d¡s.J‚dS)Nr8z example.org)r rMr8ÚappendrrrrÚtest_set_by_user_mutables¤sz-NamespaceConfigTest.test_set_by_user_mutables)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rr#r+rZpatchr4rBrGrHrJrKrNrPrRÚ __classcell__rrrrrs       rÚ__main__é)rVÚsysZunittestrrZcertbotrZcertbot._internalrZcertbot.compatrrZ certbot.testsrZ test_utilZConfigTestCaserrSÚexitÚmainÚargvÚ__file__rrrrÚs