a ‚oe¶ã@sÂdZddlZddlZddlmZddlZddlZddlmZddlm Z ddlm Z ddl m Z ddl mZdd l mZdd lmZGd d „d ejƒZed kr¾e e ejdd…eg¡¡dS)z Tests for certbot.configuration.éN)Úmock)Úerrors)Úcli)Ú constants)Údisco)Ú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__©úKC:\Program Files\Certbot\pkgs\certbot\_internal\tests\configuration_test.pyrs  zNamespaceConfigTest.setUpcCsPd|j_ddlm}t tj¡||jjƒWdƒn1sB0YdS)Nr r©ÚNamespaceConfig) rrÚ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)rrÚwork_dirrÚpathÚjoinZtempdirrrrrÚtest_proxy_getattr"sz&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)rZ server_pathÚsplitrr#ÚseprrrrrÚtest_server_path&sÿÿz$NamespaceConfigTest.test_server_pathzcertbot.configuration.constantscCs€d|_d|_d|_d|_d|_d|_t d¡}tj   |j j ¡tj   tj   |j j|¡¡ks\J‚tj   |j j¡tj   tj   |j jd¡¡ksŠJ‚t ¡xt dt¡tj   |j j¡tj   tj   |j jd¡¡ksÎJ‚tj   |j j¡tj   tj   |j jd¡¡ksüJ‚Wdƒn1s0Ytj   |j j¡tj   tj   |j jd¡¡ksLJ‚tj   |j j¡tj   tj   |j jd¡¡ks|J‚dS) NZaccZbackupsZcsrz../pÚkeysr)zacc/acme-server.org:443/newÚignore)Z ACCOUNTS_DIRZ BACKUP_DIRZCSR_DIRZIN_PROGRESS_DIRZKEY_DIRZTEMP_CHECKPOINT_DIRrZ.underscores_for_unsupported_characters_in_pathrr#ÚnormpathrÚ accounts_dirr$Ú config_dirÚ backup_dirr"ÚwarningsÚcatch_warningsÚ simplefilterÚDeprecationWarningÚcsr_dirÚkey_dirÚ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‚t ¡Dt d t¡tj   |j¡s$J‚tj   |j¡s8J‚Wdƒn1sN0Ytj   |j¡slJ‚tj   |j¡s€J‚dS) Nrrrr Úbazz mock.server©r2r"Úlogs_dirrrÚdomainsr©Úspecr/)rrrÚ MagicMockr2r"r@rrr#Úisabsr$Úgetcwdr1r3r4r5r6r7r8r9r:r;)rrÚ config_baseÚ work_baseÚ logs_baserÚmock_namespacerrrrÚtest_absolute_pathsJs> ÿÿÿ  4z'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$r2Úlive_dirÚrenewal_configs_dir)rr<rrrÚtest_renewal_dynamic_dirsns ÿz-NamespaceConfigTest.test_renewal_dynamic_dirscCs|ddlm}d}d}d}tjgd¢d}||_||_||_||ƒ}tj  |j ¡sTJ‚tj  |j ¡sfJ‚tj  |j ¡sxJ‚dS)Nrrrr r>r?rB) rrrrDr2r"r@rr#rErMrNrO)rrrGrHrIrJrrrrÚtest_renewal_absolute_pathsys z/NamespaceConfigTest.test_renewal_absolute_pathscCs8d|j_|jjjdksJ‚d|jj_|jjdks4J‚dS)Né*i9)rrr r rrrrÚtest_get_and_set_attrs 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)rZrenewal_hooks_dirrr#r$r2rZRENEWAL_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_userrUrrrrÚ"test_set_by_user_runtime_overrides¡sz6NamespaceConfigTest.test_set_by_user_runtime_overridescCshddlm}||jjƒ}t t¡| d¡Wdƒn1sB0Y| i¡| d¡rdJ‚dS)NrrZwhatever) rrrr rrÚ RuntimeErrorrVZset_argument_sources)rrrrrrÚtest_set_by_user_exception¦s    ( z.NamespaceConfigTest.test_set_by_user_exceptioncCs2|j d¡rJ‚|jj d¡|j d¡s.J‚dS)NrAz example.org)rrVrAÚappendrrrrÚtest_set_by_user_mutables³sz-NamespaceConfigTest.test_set_by_user_mutables)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr!r%r-rZpatchr=rKrPrQrSrTrWrYr[Ú __classcell__rrrrr s    $  r Ú__main__é)r_ÚsysZunittestrr4rZcertbotrZcertbot._internalrrZcertbot._internal.pluginsrZcertbot.compatrrZ certbot.testsr Z test_utilZConfigTestCaser r\ÚexitÚmainÚargvÚ__file__rrrrÚs         (