a }|g,@s2dZddlZddlZddlZddlmZddlZddlmZddlZddl m Z ddl m Z ddl m Z ddl mZdd l mZejd krddlmZnddlZGd d d ejZejd dddZejddddZed dddZGdddejZGdddejZedkr.eeejdde gdS)z*Tests for certbot._internal.plugins.disco.N)List)mock)errors) interfaces)null) standalone)webroot) c@seZdZddZdS)_EntryPointLoadFailcCs tddS)NzLoading failure) RuntimeErrorselfrN/usr/lib/python3.9/site-packages/certbot/_internal/tests/plugins/disco_test.pyloadsz_EntryPointLoadFail.loadN)__name__ __module__ __qualname__rrrrrr sr saz2certbot._internal.plugins.standalone:Authenticatorcertbot.pluginsnamevaluegroupwrz/certbot._internal.plugins.webroot:Authenticatorc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!PluginEntryPointTestz;Tests for certbot._internal.plugins.disco.PluginEntryPoint.cCsbtjdddd|_tjdddd|_tjdddd|_tjdd dd|_d d lm}|t|_ dS) Nep1zp1.ep1:Authenticatorrrzp2.pe2:Authenticatorep2zp2.foo.ep2:Authenticatorep3za.ep3:AuthenticatorrPluginEntryPoint) importlib_metadata EntryPointrep1primrrcertbot._internal.plugins.discor!EP_SA plugin_ep)rr!rrrsetUp/s, zPluginEntryPointTest.setUpc CsBddlm}|jd|jd|jd|jdtdi}|D]\}}q4dS)Nrr rrrr)r%r!rr$rrr&items)rr!namesZ entry_pointrrrr,test_entry_point_to_plugin_name_not_prefixedFs zAPluginEntryPointTest.test_entry_point_to_plugin_name_not_prefixedcCsdSNrr rrrtest_descriptionTsz%PluginEntryPointTest.test_descriptioncCstjdd|j_dS)NZDesc) descriptionr MagicMockr'Z plugin_clsr rrrtest_description_with_nameWsz/PluginEntryPointTest.test_description_with_namecCstjdd|j_dS)Nz Long desc)Zlong_descriptionr/r rrrtest_long_description[s z*PluginEntryPointTest.test_long_descriptioncCstjddgd|j_dS)NzLong desc not foundr.)r.specr/r rrr!test_long_description_nonexistent`s z6PluginEntryPointTest.test_long_description_nonexistentcCsdSr,rr rrr test_ifacesesz PluginEntryPointTest.test_ifacescCsdSr,rr rrr test__init__ks z!PluginEntryPointTest.test__init__cCst}|jj|d}dSN)config)rr0r'init)rr8pluginrrr test_initvs zPluginEntryPointTest.test_initcCs.t}|jj|d|jt|jdSr7)rr0r'r9preparestr)rr8rrr test_prepares z!PluginEntryPointTest.test_preparecCst}tj|j_||j_dSr,)rr0rZMisconfigurationErrorr< side_effectr' _initializedrr:rrrtest_prepare_misconfigureds z/PluginEntryPointTest.test_prepare_misconfiguredcCst}tj|j_||j_dSr,)rr0rZNoInstallationErrorr<r?r'r@rArrrtest_prepare_no_installations z1PluginEntryPointTest.test_prepare_no_installationcCst}tj|j_||j_dSr,)rr0r PluginErrorr<r?r'r@rArrr!test_prepare_generic_plugin_errors z6PluginEntryPointTest.test_prepare_generic_plugin_errorcCst|j}dSr,)r=r')routputrrrtest_strs zPluginEntryPointTest.test_strcCsdSr,rr rrr test_reprszPluginEntryPointTest.test_reprN)rrr__doc__r(r+r-r1r2r4r5r6r;r>rBrCrErGrHrrrrr,s      rc@seZdZdZeddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZddZddZd d!Zd"S)#PluginsRegistryTestz:Tests for certbot._internal.plugins.disco.PluginsRegistry.cCsddlm}||S)NrPluginsRegistry)r%rL)clspluginsrLrrr_create_new_registrys z(PluginsRegistryTest._create_new_registrycCsPt|_d|j_t|jj_|jj|ji|_||j|_ t j dddd|_ dS)Nrrzp1.ep1rr) rr0r'r TypeError__hash__r?rNrOregr"r#rr rrrr(s  zPluginsRegistryTest.setUpc Csddlm}tdr}tgt|jgg|j_tj t j d.}t j tj tjtjg|_|}Wdn1sp0YWdn1s0YdS)NrrK2certbot._internal.plugins.disco.importlib_metadatar)r%rLrpatchr&EP_WRr entry_pointsr?objectr"r#rZ AuthenticatorrrZ Installerfind_all)rrL mock_metaZ mock_loadrNrrr test_find_alls   Dz!PluginsRegistryTest.test_find_allc Csddlm}tdX}tgt|jgg|j_| t j }| Wdn1sV0YWdn1st0YdS)NrrKrS) r%rLrrTEP_SA_LOADFAILrUrrVr?Z assertRaisesrrDrX)rrLrYcmrrrtest_find_all_error_messages   &z/PluginsRegistryTest.test_find_all_error_messagecCsdSr,rr rrr test_getitemsz PluginsRegistryTest.test_getitemcCsdSr,rr rrr test_iterszPluginsRegistryTest.test_itercCsdSr,rr rrrtest_lenszPluginsRegistryTest.test_lencCsd|jj_|jjddS)NbazZbar)r'r9 return_valueassert_called_once_withr rrrr;s zPluginsRegistryTest.test_initcCsdSr,rr rrr test_filterszPluginsRegistryTest.test_filtercCsd|jj_d|jj_dSNTF)r'Zifacesrbr rrrr5s  zPluginsRegistryTest.test_ifacescCsd|jj_|jjdS)Nra)r'r<rbrcr rrrr>s z PluginsRegistryTest.test_preparecs.gfddtjD}||}|dS)Ncs$i|]}|tjtj|dqS))r<)rr0 functoolspartialappend).0corderrr sz:PluginsRegistryTest.test_prepare_order..)string ascii_lettersrOr<rrNrRrrkrtest_prepare_order s  z&PluginsRegistryTest.test_prepare_ordercCsd|j_d|j_dSre)r'Z availabler rrrtest_availablesz"PluginsRegistryTest.test_availablecCs d|j_dS)NT)r'Z initializedr rrrtest_find_initsz"PluginsRegistryTest.test_find_initcCsdd|j_dS)NcSsdS)NzPluginEntryPoint#mockr_rrr#z/PluginsRegistryTest.test_repr..)r'__repr__r rrrrH"s zPluginsRegistryTest.test_reprcCs,dd|j_|jj|jddi}||}dS)NcSsdS)NZMockrrtrrrrv)rwz.PluginsRegistryTest.test_str..ZfooZBar)r'__str__rrOrprrrrG's  zPluginsRegistryTest.test_strN)rrrrI classmethodrOr(rZr]r^r_r`r;rdr5r>rqrrrsrHrGrrrrrJs$    rJ__main__)!rIrfrnsystypingrZunittestrZpytestZcertbotrrZcertbot._internal.pluginsrrr version_infoimportlib.metadatametadatar"r#r r&rUr[ZTestCaserrJrexitmainargv__file__rrrrsH        w