diff --git a/certbot/display/util.py b/certbot/display/util.py index 30d604313..0ad8fa200 100644 --- a/certbot/display/util.py +++ b/certbot/display/util.py @@ -179,9 +179,12 @@ class FileDisplay(object): self._print_menu(message, tags) code, ans = self.input("Select the appropriate numbers separated " - "by commas and/or spaces") + "by commas and/or spaces, or leave input " + "blank to select all options shown") if code == OK: + if len(ans.strip()) == 0: + ans = " ".join(str(x) for x in range(1, len(tags)+1)) indices = separate_list_input(ans) selected_tags = self._scrub_checklist_input(indices, tags) if selected_tags: diff --git a/certbot/tests/display/util_test.py b/certbot/tests/display/util_test.py index b04235bd9..fa1cb89ba 100644 --- a/certbot/tests/display/util_test.py +++ b/certbot/tests/display/util_test.py @@ -79,6 +79,13 @@ class FileOutputDisplayTest(unittest.TestCase): self.assertEqual( (code, set(tag_list)), (display_util.OK, set(["tag1", "tag2"]))) + @mock.patch("certbot.display.util.FileDisplay.input") + def test_checklist_empty(self, mock_input): + mock_input.return_value = (display_util.OK, "") + code, tag_list = self.displayer.checklist("msg", TAGS) + self.assertEqual( + (code, set(tag_list)), (display_util.OK, set(["tag1", "tag2", "tag3"]))) + @mock.patch("certbot.display.util.FileDisplay.input") def test_checklist_miss_valid(self, mock_input): mock_input.side_effect = [