Exemple #1
0
    def setUp(self):
        zope.component.provideUtility(
            display_util.FileDisplay(sys.stdout, False))

        self.accounts_dir = tempfile.mkdtemp("accounts")
        self.account_keys_dir = os.path.join(self.accounts_dir, "keys")
        os.makedirs(self.account_keys_dir, 0o700)

        self.config = mock.MagicMock(accounts_dir=self.accounts_dir,
                                     account_keys_dir=self.account_keys_dir,
                                     server="certbot-demo.org")
        self.key = KEY

        self.acc1 = account.Account(
            messages.RegistrationResource(
                uri=None,
                new_authzr_uri=None,
                body=messages.Registration.from_data(email="*****@*****.**")),
            self.key)
        self.acc2 = account.Account(
            messages.RegistrationResource(uri=None,
                                          new_authzr_uri=None,
                                          body=messages.Registration.from_data(
                                              email="*****@*****.**",
                                              phone="phone")), self.key)
Exemple #2
0
def set_displayer(config):
    """Set the displayer"""
    if config.quiet:
        config.noninteractive_mode = True
        displayer = display_util.NoninteractiveDisplay(open(os.devnull, "w"))
    elif config.noninteractive_mode:
        displayer = display_util.NoninteractiveDisplay(sys.stdout)
    else:
        displayer = display_util.FileDisplay(sys.stdout)
    zope.component.provideUtility(displayer)
Exemple #3
0
 def setUp(self):
     zope.component.provideUtility(display_util.FileDisplay(sys.stdout))
     self.mock_apache = mock.Mock(
         description_with_name="a", misconfigured=True)
     self.mock_stand = mock.Mock(
         description_with_name="s", misconfigured=False)
     self.mock_stand.init().more_info.return_value = "standalone"
     self.plugins = [
         self.mock_apache,
         self.mock_stand,
     ]
Exemple #4
0
def main(cli_args=sys.argv[1:]):
    """Command line argument parsing and main script execution."""
    sys.excepthook = functools.partial(_handle_exception, config=None)
    plugins = plugins_disco.PluginsRegistry.find_all()

    # note: arg parser internally handles --help (and exits afterwards)
    args = cli.prepare_and_parse_args(plugins, cli_args)
    config = configuration.NamespaceConfig(args)
    zope.component.provideUtility(config)

    # Setup logging ASAP, otherwise "No handlers could be found for
    # logger ..." TODO: this should be done before plugins discovery
    for directory in config.config_dir, config.work_dir:
        le_util.make_or_verify_dir(
            directory, constants.CONFIG_DIRS_MODE, os.geteuid(),
            "--strict-permissions" in cli_args)
    # TODO: logs might contain sensitive data such as contents of the
    # private key! #525
    le_util.make_or_verify_dir(
        config.logs_dir, 0o700, os.geteuid(), "--strict-permissions" in cli_args)
    setup_logging(config, _cli_log_handler, logfile='letsencrypt.log')
    cli.possible_deprecation_warning(config)

    logger.debug("certbot version: %s", certbot.__version__)
    # do not log `config`, as it contains sensitive data (e.g. revoke --key)!
    logger.debug("Arguments: %r", cli_args)
    logger.debug("Discovered plugins: %r", plugins)

    sys.excepthook = functools.partial(_handle_exception, config=config)

    # Displayer
    if config.quiet:
        config.noninteractive_mode = True
        displayer = display_util.NoninteractiveDisplay(open(os.devnull, "w"))
    elif config.noninteractive_mode:
        displayer = display_util.NoninteractiveDisplay(sys.stdout)
    elif config.text_mode:
        displayer = display_util.FileDisplay(sys.stdout)
    elif config.verb == "renew":
        config.noninteractive_mode = True
        displayer = display_util.NoninteractiveDisplay(sys.stdout)
    else:
        displayer = display_util.NcursesDisplay()
    zope.component.provideUtility(displayer)

    # Reporter
    report = reporter.Reporter(config)
    zope.component.provideUtility(report)
    atexit.register(report.atexit_print_messages)

    return config.func(config, plugins)
Exemple #5
0
    def setUp(self, test_dir="debian_apache_2_4/multiple_vhosts",
              config_root="debian_apache_2_4/multiple_vhosts/apache2",
              vhost_root="debian_apache_2_4/multiple_vhosts/apache2/sites-available"):
        super(ParserTest, self).setUp(test_dir, config_root, vhost_root)

        zope.component.provideUtility(display_util.FileDisplay(sys.stdout))

        from certbot_apache.parser import ApacheParser
        self.aug = augeas.Augeas(
            flags=augeas.Augeas.NONE | augeas.Augeas.NO_MODL_AUTOLOAD)
        with mock.patch("certbot_apache.parser.ApacheParser."
                        "update_runtime_variables"):
            self.parser = ApacheParser(
                self.aug, self.config_path, self.vhost_path)
    def prepare(self):  # pylint: disable=missing-docstring,no-self-use
        # Re-register reporter - json only report
        self.orig_reporter = zope.component.getUtility(interfaces.IReporter)
        zope.component.provideUtility(self, provides=interfaces.IReporter)
        atexit.register(self.atexit_print_messages)

        # Re-register displayer - stderr only displayer
        #displayer = display_util.NoninteractiveDisplay(sys.stderr)
        displayer = display_util.FileDisplay(sys.stderr, False)
        zope.component.provideUtility(displayer)

        # Non-interactive not yet supported
        if self.config.noninteractive_mode and not self.conf("test-mode"):
            raise errors.PluginError(
                "Running manual mode non-interactively is not supported (yet)")
        if not self._is_handler_mode() and self._is_dehydrated_dns():
            raise errors.PluginError(
                "dehydrated-dns switch is allowed only with handler specified")
Exemple #7
0
def set_displayer(config):
    """Set the displayer

    :param config: Configuration object
    :type config: interfaces.IConfig

    :returns: `None`
    :rtype: None

    """
    if config.quiet:
        config.noninteractive_mode = True
        displayer = display_util.NoninteractiveDisplay(open(os.devnull, "w"))
    elif config.noninteractive_mode:
        displayer = display_util.NoninteractiveDisplay(sys.stdout)
    else:
        displayer = display_util.FileDisplay(sys.stdout,
                                             config.force_interactive)
    zope.component.provideUtility(displayer)
Exemple #8
0
 def setUp(self):
     zope.component.provideUtility(display_util.FileDisplay(sys.stdout))
     self.base_dir = "/example_path"
     self.vhosts = util.get_vh_truth(self.base_dir,
                                     "debian_apache_2_4/multiple_vhosts")
Exemple #9
0
 def setUp(self):
     zope.component.provideUtility(display_util.FileDisplay(sys.stdout,
                                                            False))
     self.mock_install = mock.MagicMock()
Exemple #10
0
 def setUp(self):
     zope.component.provideUtility(display_util.FileDisplay(sys.stdout,
                                                            False))
Exemple #11
0
 def setUp(self):
     super(FileOutputDisplayTest, self).setUp()
     self.mock_stdout = mock.MagicMock()
     self.displayer = display_util.FileDisplay(self.mock_stdout, False)
Exemple #12
0
"""Manual test of display functions."""
import sys

from certbot.display import util
from certbot.tests.display import util_test


def test_visual(displayer, choices):
    """Visually test all of the display functions."""
    displayer.notification("Random notification!")
    displayer.menu("Question?",
                   choices,
                   ok_label="O",
                   cancel_label="Can",
                   help_label="??")
    displayer.menu("Question?", [choice[1] for choice in choices],
                   ok_label="O",
                   cancel_label="Can",
                   help_label="??")
    displayer.input("Input Message")
    displayer.yesno("YesNo Message", yes_label="Yessir", no_label="Nosir")
    displayer.checklist("Checklist Message", [choice[0] for choice in choices])


if __name__ == "__main__":
    displayer = util.FileDisplay(sys.stdout, False)
    test_visual(displayer, util_test.CHOICES)
Exemple #13
0
"""Manual test of display functions."""
import sys

from certbot.display import util
from certbot.tests.display import util_test


def test_visual(displayer, choices):
    """Visually test all of the display functions."""
    displayer.notification("Random notification!")
    displayer.menu("Question?", choices,
                   ok_label="O", cancel_label="Can", help_label="??")
    displayer.menu("Question?", [choice[1] for choice in choices],
                   ok_label="O", cancel_label="Can", help_label="??")
    displayer.input("Input Message")
    displayer.yesno("YesNo Message", yes_label="Yessir", no_label="Nosir")
    displayer.checklist("Checklist Message", [choice[0] for choice in choices])


if __name__ == "__main__":
    displayer = util.FileDisplay(sys.stdout):
    test_visual(displayer, util_test.CHOICES)
Exemple #14
0
"""Manual test of display functions."""
import sys

from certbot.display import util
from certbot.tests.display import util_test


def test_visual(displayer, choices):
    """Visually test all of the display functions."""
    displayer.notification("Random notification!")
    displayer.menu("Question?", choices,
                   ok_label="O", cancel_label="Can", help_label="??")
    displayer.menu("Question?", [choice[1] for choice in choices],
                   ok_label="O", cancel_label="Can", help_label="??")
    displayer.input("Input Message")
    displayer.yesno("YesNo Message", yes_label="Yessir", no_label="Nosir")
    displayer.checklist("Checklist Message", [choice[0] for choice in choices])


if __name__ == "__main__":
    for displayer in util.NcursesDisplay(), util.FileDisplay(sys.stdout):
        test_visual(displayer, util_test.CHOICES)