1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-21 19:01:07 +03:00

choose_plugin can return None

This commit is contained in:
Jakub Warmuz
2015-05-09 05:47:09 +00:00
parent fce08ea30c
commit e197f156a7
2 changed files with 16 additions and 1 deletions

View File

@@ -71,7 +71,11 @@ def pick_plugin(config, default, plugins, question, ifaces):
if len(prepared) > 1:
logging.debug("Multiple candidate plugins: %s", prepared)
return choose_plugin(prepared.values(), question).init()
plugin_ep = choose_plugin(prepared.values(), question)
if plugin_ep is None:
return None
else:
return plugin_ep.init()
elif len(prepared) == 1:
plugin_ep = prepared.values()[0]
logging.debug("Single candidate plugin: %s", plugin_ep)

View File

@@ -102,6 +102,17 @@ class PickPluginTest(unittest.TestCase):
mock_choose.assert_called_once_with(
[plugin_ep, plugin_ep], self.question)
def test_choose_plugin_none(self):
self.reg.ifaces().verify().available.return_value = {
"bar": None,
"baz": None,
}
with mock.patch("letsencrypt.client.display"
".ops.choose_plugin") as mock_choose:
mock_choose.return_value = None
self.assertTrue(self._call() is None)
class ConveniencePickPluginTest(unittest.TestCase):
"""Tests for letsencrypt.client.display.ops.pick_*."""