当前位置: 首页>>代码示例>>Python>>正文


Python AuthHandler.handle_authorizations方法代码示例

本文整理汇总了Python中certbot.auth_handler.AuthHandler.handle_authorizations方法的典型用法代码示例。如果您正苦于以下问题:Python AuthHandler.handle_authorizations方法的具体用法?Python AuthHandler.handle_authorizations怎么用?Python AuthHandler.handle_authorizations使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在certbot.auth_handler.AuthHandler的用法示例。


在下文中一共展示了AuthHandler.handle_authorizations方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: HandleAuthorizationsTest

# 需要导入模块: from certbot.auth_handler import AuthHandler [as 别名]
# 或者: from certbot.auth_handler.AuthHandler import handle_authorizations [as 别名]
class HandleAuthorizationsTest(unittest.TestCase):  # pylint: disable=too-many-public-methods
    """handle_authorizations test.

    This tests everything except for all functions under _poll_challenges.

    """

    def setUp(self):
        from certbot.auth_handler import AuthHandler

        self.mock_display = mock.Mock()
        zope.component.provideUtility(
            self.mock_display, interfaces.IDisplay)
        zope.component.provideUtility(
            mock.Mock(debug_challenges=False), interfaces.IConfig)

        self.mock_auth = mock.MagicMock(name="ApacheConfigurator")

        self.mock_auth.get_chall_pref.return_value = [challenges.TLSSNI01]

        self.mock_auth.perform.side_effect = gen_auth_resp

        self.mock_account = mock.Mock(key=util.Key("file_path", "PEM"))
        self.mock_net = mock.MagicMock(spec=acme_client.Client)
        self.mock_net.acme_version = 1
        self.mock_net.retry_after.side_effect = acme_client.Client.retry_after

        self.handler = AuthHandler(
            self.mock_auth, self.mock_net, self.mock_account, [])

        logging.disable(logging.CRITICAL)

    def tearDown(self):
        logging.disable(logging.NOTSET)

    def _test_name1_tls_sni_01_1_common(self, combos):
        authzr = gen_dom_authzr(domain="0", challs=acme_util.CHALLENGES, combos=combos)
        mock_order = mock.MagicMock(authorizations=[authzr])

        self.mock_net.poll.side_effect = _gen_mock_on_poll(retry=1, wait_value=30)
        with mock.patch('certbot.auth_handler.time') as mock_time:
            authzr = self.handler.handle_authorizations(mock_order)

            self.assertEqual(self.mock_net.answer_challenge.call_count, 1)

            self.assertEqual(self.mock_net.poll.call_count, 2)  # Because there is one retry
            self.assertEqual(mock_time.sleep.call_count, 2)
            # Retry-After header is 30 seconds, but at the time sleep is invoked, several
            # instructions are executed, and next pool is in less than 30 seconds.
            self.assertTrue(mock_time.sleep.call_args_list[1][0][0] <= 30)
            # However, assert that we did not took the default value of 3 seconds.
            self.assertTrue(mock_time.sleep.call_args_list[1][0][0] > 3)

            self.assertEqual(self.mock_auth.cleanup.call_count, 1)
            # Test if list first element is TLSSNI01, use typ because it is an achall
            self.assertEqual(
                self.mock_auth.cleanup.call_args[0][0][0].typ, "tls-sni-01")

            self.assertEqual(len(authzr), 1)

    def test_name1_tls_sni_01_1_acme_1(self):
        self._test_name1_tls_sni_01_1_common(combos=True)

    def test_name1_tls_sni_01_1_acme_2(self):
        self.mock_net.acme_version = 2
        self._test_name1_tls_sni_01_1_common(combos=False)

    def test_name1_tls_sni_01_1_http_01_1_dns_1_acme_1(self):
        self.mock_net.poll.side_effect = _gen_mock_on_poll()
        self.mock_auth.get_chall_pref.return_value.append(challenges.HTTP01)
        self.mock_auth.get_chall_pref.return_value.append(challenges.DNS01)

        authzr = gen_dom_authzr(domain="0", challs=acme_util.CHALLENGES, combos=False)
        mock_order = mock.MagicMock(authorizations=[authzr])
        authzr = self.handler.handle_authorizations(mock_order)

        self.assertEqual(self.mock_net.answer_challenge.call_count, 3)

        self.assertEqual(self.mock_net.poll.call_count, 1)

        self.assertEqual(self.mock_auth.cleanup.call_count, 1)
        # Test if list first element is TLSSNI01, use typ because it is an achall
        for achall in self.mock_auth.cleanup.call_args[0][0]:
            self.assertTrue(achall.typ in ["tls-sni-01", "http-01", "dns-01"])

        # Length of authorizations list
        self.assertEqual(len(authzr), 1)

    def test_name1_tls_sni_01_1_http_01_1_dns_1_acme_2(self):
        self.mock_net.acme_version = 2
        self.mock_net.poll.side_effect = _gen_mock_on_poll()
        self.mock_auth.get_chall_pref.return_value.append(challenges.HTTP01)
        self.mock_auth.get_chall_pref.return_value.append(challenges.DNS01)

        authzr = gen_dom_authzr(domain="0", challs=acme_util.CHALLENGES, combos=False)
        mock_order = mock.MagicMock(authorizations=[authzr])
        authzr = self.handler.handle_authorizations(mock_order)

        self.assertEqual(self.mock_net.answer_challenge.call_count, 1)

#.........这里部分代码省略.........
开发者ID:J0WI,项目名称:lets-encrypt-preview,代码行数:103,代码来源:auth_handler_test.py


注:本文中的certbot.auth_handler.AuthHandler.handle_authorizations方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。