def _test_context_manager_with_mock_readline(self, mock_readline): from certbot._internal.display import completer mock_readline.parse_and_bind.side_effect = enable_tab_completion with completer.Completer(): pass self.assertTrue(mock_readline.parse_and_bind.called)
def test_context_manager_with_unmocked_readline(self): from certbot._internal.display import completer reload_module(completer) original_completer = readline.get_completer() original_delims = readline.get_completer_delims() with completer.Completer(): pass self.assertEqual(readline.get_completer(), original_completer) self.assertEqual(readline.get_completer_delims(), original_delims)
def test_complete(self): from certbot._internal.display import completer my_completer = completer.Completer() num_paths = len(self.paths) for i in range(num_paths): completion = my_completer.complete(self.tempdir, i) self.assertTrue(completion in self.paths) self.paths.remove(completion) self.assertFalse(self.paths) completion = my_completer.complete(self.tempdir, num_paths) self.assertEqual(completion, None)
def directory_select(self, message, default=None, cli_flag=None, force_interactive=False, **unused_kwargs): """Display a directory selection screen. :param str message: prompt to give the user :param default: default value to return (if one exists) :param str cli_flag: option used to set this value with the CLI :param bool force_interactive: True if it's safe to prompt the user because it won't cause any workflow regressions :returns: tuple of the form (`code`, `string`) where `code` - display exit code `string` - input entered by the user """ with completer.Completer(): return self.input(message, default, cli_flag, force_interactive)