3 گac @ s d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlm Z ddl mZ ddlm Z dd lmZ dd lmZ ddlmZ erddlmZ neZyddlZW n ek r dd lmZ Y nX dZejjejdZG dd deZG dd dZ ee!ef e!ddddZ"dS )z'Base test class for DNS authenticators. )Any)Mapping) TYPE_CHECKINGN) challenges)achallenges) filesystem)DNSAuthenticator) acme_util)util)Protocol)mockzexample.comzrsa512_key.pemc @ s6 e Zd ZU dZeeddddZeddddZdS )_AuthenticatorCallableTestCasezMProtocol describing a TestCase able to call a real DNSAuthenticator instance.N)unused_argsreturnc G s dS )zj See https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertTrue N )selfr r r %/usr/lib/python3.6/dns_test_common.py assertTrue$ s z)_AuthenticatorCallableTestCase.assertTruec G s dS )zk See https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertEqual Nr )r r r r r assertEqual+ s z*_AuthenticatorCallableTestCase.assertEqual) __name__ __module____qualname____doc__r authr r r r r r r r s r c @ sR e Zd ZdZejejee dZ eddddZeddddZ eddd d ZdS )BaseAuthenticatorTestz A base test class to reduce duplication between test code for DNS Authenticator Plugins. Assumes: * That subclasses also subclass unittest.TestCase * That the authenticator is stored as self.auth )ZchallbZdomainZaccount_keyN)r r c C s | j t| jj t d S )N)r isinstancer Z more_infostr)r r r r test_more_info? s z$BaseAuthenticatorTest.test_more_infoc C s | j | jjdtjg d S )Nzexample.org)r r Zget_chall_prefr DNS01)r r r r test_get_chall_prefB s z)BaseAuthenticatorTest.test_get_chall_prefc C s. t j }| jj| |jdtt jt jd d S )Nzpropagation-seconds)typedefaulthelp)r Z MagicMockr Zadd_parser_argumentsZassert_any_callintANY)r mr r r test_parser_argumentsE s z+BaseAuthenticatorTest.test_parser_arguments)r r r r r Z"KeyAuthorizationAnnotatedChallenger r DOMAINKEYZachallr r r r&