Exemplo n.º 1
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    is_snapcraft_developer_debug = kwargs["enable_developer_debug"]
    if is_snapcraft_developer_debug:
        log_level = logging.DEBUG
        click.echo("Starting snapcraft {} from {}.".format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler,
                                       debug=is_snapcraft_developer_debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)

    # Configure `requests` library to use system certificates.
    configure_requests_ca()

    # Payload information about argv
    ctx.obj = dict(argv=sys.argv)

    # The default command
    if not ctx.invoked_subcommand:
        snap_command = lifecyclecli.commands["snap"]
        # Fill in the context with default values for the snap command.
        if "directory" not in ctx.params:
            ctx.params["directory"] = None
        if "output" not in ctx.params:
            ctx.params["output"] = None
        snap_command.invoke(ctx)
Exemplo n.º 2
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    # Debugging snapcraft itself is not tied to debugging a snapcraft project.
    try:
        is_snapcraft_developer_debug = util.strtobool(
            os.getenv("SNAPCRAFT_ENABLE_DEVELOPER_DEBUG", "n")
        )
    except ValueError:
        is_snapcraft_developer_debug = False
    if is_snapcraft_developer_debug:
        log_level = logging.DEBUG
        click.echo(
            "Starting snapcraft {} from {}.".format(
                snapcraft.__version__, os.path.dirname(__file__)
            )
        )
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(
        exception_handler, debug=is_snapcraft_developer_debug
    )

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands["snap"])
Exemplo n.º 3
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    # Debugging snapcraft itself is not tied to debugging a snapcraft project.
    try:
        is_snapcraft_developer_debug = util.strtobool(
            os.getenv("SNAPCRAFT_ENABLE_DEVELOPER_DEBUG", "n"))
    except ValueError:
        is_snapcraft_developer_debug = False
    if is_snapcraft_developer_debug:
        log_level = logging.DEBUG
        click.echo("Starting snapcraft {} from {}.".format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler,
                                       debug=is_snapcraft_developer_debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)

    # Payload information about argv
    ctx.obj = dict(argv=sys.argv)

    # The default command
    if not ctx.invoked_subcommand:
        snap_command = lifecyclecli.commands["snap"]
        # Fill in the context with default values for the snap command.
        if "directory" not in ctx.params:
            ctx.params["directory"] = None
        if "output" not in ctx.params:
            ctx.params["output"] = None
        snap_command.invoke(ctx)
Exemplo n.º 4
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    # Debugging snapcraft itself is not tied to debugging a snapcraft project.
    try:
        is_snapcraft_developer_debug = util.strtobool(
            os.getenv("SNAPCRAFT_ENABLE_DEVELOPER_DEBUG", "n"))
    except ValueError:
        is_snapcraft_developer_debug = False
    if is_snapcraft_developer_debug:
        log_level = logging.DEBUG
        click.echo("Starting snapcraft {} from {}.".format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler,
                                       debug=is_snapcraft_developer_debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands["snap"])
Exemplo n.º 5
0
def main(argv=None):
    doc = __doc__.format(DEFAULT_SERIES=DEFAULT_SERIES)
    args = docopt(doc, version=snapcraft.__version__, argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)
    project_options = _get_project_options(args)

    logger.debug("Starting snapcraft {} from {}.".format(
        snapcraft.__version__, os.path.dirname(__file__)))

    if args['strip']:
        logger.warning("DEPRECATED: use 'prime' instead of 'strip'")
        args['prime'] = True
    try:
        return run(args, project_options)
    except Exception as e:
        if args['--debug']:
            raise

        logger.error(str(e))
        sys.exit(1)
Exemplo n.º 6
0
    def test_configure_must_support_no_tty(self):
        self.fake_terminal = fixture_setup.FakeTerminal(isatty=False)
        self.useFixture(self.fake_terminal)
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug("Test debug")
        logger.info("Test info")
        logger.warning("Test warning")
        logger.error("Test error")
        logger.critical("Test critical")

        stdout = self.fake_terminal.getvalue()
        self.assertThat(stdout, Contains("Test debug"))
        self.assertThat(stdout, Contains("Test info"))
        self.assertThat(stdout, Not(Contains(self.info_color)))

        stderr = self.fake_terminal.getvalue(stderr=True)
        self.assertThat(stderr, Contains("Test warning"))
        self.assertThat(stderr, Not(Contains(self.warning_color)))
        self.assertThat(stderr, Not(Contains("\033[0m")))
        self.assertThat(stderr, Contains("Test error"))
        self.assertThat(stderr, Not(Contains(self.error_color)))
        self.assertThat(stderr, Contains("Test critical"))
        self.assertThat(stderr, Not(Contains(self.critical_color)))
Exemplo n.º 7
0
def main(argv=None):
    doc = __doc__.format(DEFAULT_SERIES=DEFAULT_SERIES)
    args = docopt(doc, version=snapcraft.__version__, argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)
    project_options = _get_project_options(args)

    logger.debug("Starting snapcraft {} from {}.".format(
        snapcraft.__version__, os.path.dirname(__file__)))

    if args['strip']:
        logger.warning("DEPRECATED: use 'prime' instead of 'strip'")
        args['prime'] = True
    try:
        return run(args, project_options)
    except Exception as e:
        if args['--debug']:
            raise

        logger.error(str(e))
        sys.exit(1)
Exemplo n.º 8
0
def main(argv=None):
    args = docopt(__doc__, version=_get_version(), argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)

    return run(args)
Exemplo n.º 9
0
def main(argv=None):
    args = docopt(__doc__, version=snapcraft.__version__, argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args["--debug"]:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)

    return run(args)
Exemplo n.º 10
0
def main(argv=None):
    args = docopt(__doc__, version=_get_version(), argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)

    return run(args)
Exemplo n.º 11
0
def run(debug):
    """snapcraftctl is how snapcraft.yaml can communicate with snapcraft"""

    if debug:
        log_level = logging.DEBUG
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler, debug=debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
Exemplo n.º 12
0
def run(debug):
    """snapcraftctl is how snapcraft.yaml can communicate with snapcraft"""

    if debug:
        log_level = logging.DEBUG
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler, debug=debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
Exemplo n.º 13
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""
    if debug:
        log_level = logging.DEBUG
        click.echo('Starting snapcraft {} from {}.'.format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO
    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands['snap'])
Exemplo n.º 14
0
    def test_configure_must_send_messages_to_stdout(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.debug("Test debug")
        logger.info("Test info")

        stdout = self.fake_terminal.getvalue()
        self.assertThat(stdout, Contains("Test debug"))
        expected_info = "{}Test info\033[0m".format(self.info_color)
        self.assertThat(stdout, Contains(expected_info))
        self.assertThat(self.fake_terminal.getvalue(stderr=True), Equals(""))
Exemplo n.º 15
0
    def test_configure_must_send_errors_to_stderr(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.error("Test error")
        logger.critical("Test critical")

        stderr = self.fake_terminal.getvalue(stderr=True)
        expected_error = "{}Test error\033[0m".format(self.error_color)
        self.assertThat(stderr, Contains(expected_error))
        expected_crit = "{}Test critical\033[0m".format(self.critical_color)
        self.assertThat(stderr, Contains(expected_crit))
        self.assertThat(self.fake_terminal.getvalue(), Equals(""))
Exemplo n.º 16
0
    def test_configure_must_send_errors_to_stderr(
            self, mock_stderr, mock_stdout, mock_isatty):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.error('Test error')
        logger.critical('Test critical')

        expected_err = ('{}Test error\033[0m\n'
                        '{}Test critical\033[0m\n').format(
            self.error_color, self.critical_color)
        self.assertEqual(expected_err, mock_stderr.getvalue())
        self.assertEqual('', mock_stdout.getvalue())
Exemplo n.º 17
0
def main(argv=None):
    args = docopt(__doc__, version=_get_version(), argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)

    try:
        return run(args)
    except Exception as e:
        if args['--debug']:
            raise

        sys.exit(textwrap.fill(str(e)))
Exemplo n.º 18
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    if debug:
        log_level = logging.DEBUG
        click.echo('Starting snapcraft {} from {}.'.format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler, debug=debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands['snap'])
Exemplo n.º 19
0
    def test_configure_must_send_errors_to_stderr(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.error('Test error')
        logger.critical('Test critical')

        expected_err = ('{}Test error\033[0m\n'
                        '{}Test critical\033[0m\n').format(
            self.error_color, self.critical_color)

        self.assertThat(
            self.fake_terminal.getvalue(stderr=True),
            Equals(expected_err))
        self.assertThat(self.fake_terminal.getvalue(), Equals(''))
Exemplo n.º 20
0
    def test_configure_must_send_messages_to_stdout(
            self, mock_stderr, mock_stdout, mock_isatty):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')

        expected_out = ('Test debug\n'
                        '{}Test info\033[0m\n'
                        '{}Test warning\033[0m\n').format(
            self.info_color, self.warning_color)
        self.assertEqual(expected_out, mock_stdout.getvalue())
        self.assertEqual('', mock_stderr.getvalue())
Exemplo n.º 21
0
    def test_configure_must_send_messages_to_stdout(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)
        # Overwrite the level to log everything.
        logger.setLevel(logging.DEBUG)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')

        expected_out = ('Test debug\n'
                        '{}Test info\033[0m\n'
                        '{}Test warning\033[0m\n').format(
            self.info_color, self.warning_color)

        self.assertThat(self.fake_terminal.getvalue(), Equals(expected_out))
        self.assertThat(self.fake_terminal.getvalue(stderr=True), Equals(''))
Exemplo n.º 22
0
    def test_configure_must_support_no_tty(self):
        self.fake_terminal = fixture_setup.FakeTerminal(isatty=False)
        self.useFixture(self.fake_terminal)
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('Test debug\n' 'Test info\n' 'Test warning\n')
        expected_err = ('Test error\n' 'Test critical\n')

        self.assertEqual(expected_out, self.fake_terminal.getvalue())
        self.assertEqual(expected_err,
                         self.fake_terminal.getvalue(stderr=True))
Exemplo n.º 23
0
    def test_configure_must_log_info_and_higher(
            self, mock_stderr, mock_stdout, mock_isatty):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('{}Test info\033[0m\n'
                        '{}Test warning\033[0m\n').format(
            self.info_color, self.warning_color)
        expected_err = ('{}Test error\033[0m\n'
                        '{}Test critical\033[0m\n').format(
            self.error_color, self.critical_color)
        self.assertEqual(expected_out, mock_stdout.getvalue())
        self.assertEqual(expected_err, mock_stderr.getvalue())
Exemplo n.º 24
0
def main(argv=None):
    args = docopt(__doc__, version=_get_version(), argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)
    project_options = _get_project_options(args)

    if args['strip']:
        logger.warning("DEPRECATED: use 'prime' instead of 'strip'")
        args['prime'] = True
    try:
        return run(args, project_options)
    except Exception as e:
        if args['--debug']:
            raise

        sys.exit(textwrap.fill(str(e)))
Exemplo n.º 25
0
    def test_configure_must_support_debug(
            self, mock_stderr, mock_stdout, mock_isatty):
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = (
            '\033[1mTest debug\033[0m\n'
            '\033[1mTest info\033[0m\n'
            '\033[1mTest warning\033[0m\n')
        expected_err = (
            '\033[1mTest error\033[0m\n'
            '\033[1mTest critical\033[0m\n')
        self.assertEqual(expected_out, mock_stdout.getvalue())
        self.assertEqual(expected_err, mock_stderr.getvalue())
Exemplo n.º 26
0
    def test_configure_must_log_info_and_higher(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('{}Test info\033[0m\n'
                        '{}Test warning\033[0m\n').format(
            self.info_color, self.warning_color)
        expected_err = ('{}Test error\033[0m\n'
                        '{}Test critical\033[0m\n').format(
            self.error_color, self.critical_color)

        self.assertThat(self.fake_terminal.getvalue(), Equals(expected_out))
        self.assertThat(
            self.fake_terminal.getvalue(stderr=True), Equals(expected_err))
Exemplo n.º 27
0
def main(argv=None):
    args = docopt(__doc__, version=_get_version(), argv=argv)

    # Default log level is INFO unless --debug is specified
    log_level = logging.INFO
    if args['--debug']:
        log_level = logging.DEBUG

    log.configure(log_level=log_level)
    project_options = _get_project_options(args)

    if args['strip']:
        logger.warning("DEPRECATED: use 'prime' instead of 'strip'")
        args['prime'] = True
    try:
        return run(args, project_options)
    except Exception as e:
        if args['--debug']:
            raise

        sys.exit(textwrap.fill(str(e)))
Exemplo n.º 28
0
    def test_configure_must_support_debug(self):
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('Test debug\n'
                        '{}Test info\033[0m\n'
                        '{}Test warning\033[0m\n').format(
                            self.info_color, self.warning_color)
        expected_err = ('{}Test error\033[0m\n'
                        '{}Test critical\033[0m\n').format(
                            self.error_color, self.critical_color)

        self.assertEqual(expected_out, self.fake_terminal.getvalue())
        self.assertEqual(expected_err,
                         self.fake_terminal.getvalue(stderr=True))
Exemplo n.º 29
0
    def test_configure_must_support_no_tty(
            self, mock_stderr, mock_stdout, mock_isatty):
        mock_isatty.return_value = False
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('Test debug\n'
                        'Test info\n'
                        'Test warning\n').format(
            self.info_color, self.warning_color)
        expected_err = ('Test error\n'
                        'Test critical\n').format(
            self.error_color, self.critical_color)
        self.assertEqual(expected_out, mock_stdout.getvalue())
        self.assertEqual(expected_err, mock_stderr.getvalue())
Exemplo n.º 30
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    if debug:
        log_level = logging.DEBUG

        # Setting this here so that tools run within this are also in debug
        # mode (e.g. snapcraftctl)
        os.environ["SNAPCRAFT_DEBUG"] = "true"
        click.echo("Starting snapcraft {} from {}.".format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler, debug=debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands["snap"])
Exemplo n.º 31
0
def run(ctx, debug, catch_exceptions=False, **kwargs):
    """Snapcraft is a delightful packaging tool."""

    # Do this early, if we are in managed-host and not root yet we want to re-exec with
    # sudo keeping the current environment settings.
    if os.getenv("SNAPCRAFT_BUILD_ENVIRONMENT"
                 ) == "managed-host" and os.geteuid() != 0:
        snap_path = os.getenv("SNAP")
        # Use -E to keep the environment.
        cmd = ["usr/bin/sudo", "-E"]
        # Pick the correct interpreter if running from a snap (in managed-host mode, this
        # is most likely the only scenario).
        if os.getenv("SNAP_NAME") == "snapcraft":
            cmd.append(os.path.join(snap_path, "usr", "bin", "python3"))
        cmd.extend(sys.argv)
        os.execve("/usr/bin/sudo", cmd, os.environ)

    # Debugging snapcraft itself is not tied to debugging a snapcraft project.
    try:
        is_snapcraft_developer_debug = util.strtobool(
            os.getenv("SNAPCRAFT_ENABLE_DEVELOPER_DEBUG", "n"))
    except ValueError:
        is_snapcraft_developer_debug = False
    if is_snapcraft_developer_debug:
        log_level = logging.DEBUG
        click.echo("Starting snapcraft {} from {}.".format(
            snapcraft.__version__, os.path.dirname(__file__)))
    else:
        log_level = logging.INFO

    # Setup global exception handler (to be called for unhandled exceptions)
    sys.excepthook = functools.partial(exception_handler,
                                       debug=is_snapcraft_developer_debug)

    # In an ideal world, this logger setup would be replaced
    log.configure(log_level=log_level)
    # The default command
    if not ctx.invoked_subcommand:
        ctx.forward(lifecyclecli.commands["snap"])
Exemplo n.º 32
0
    def test_configure_must_support_no_tty(self):
        self.fake_terminal = fixture_setup.FakeTerminal(isatty=False)
        self.useFixture(self.fake_terminal)
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        expected_out = ('Test debug\n'
                        'Test info\n'
                        'Test warning\n')
        expected_err = ('Test error\n'
                        'Test critical\n')

        self.assertThat(self.fake_terminal.getvalue(), Equals(expected_out))
        self.assertThat(
            self.fake_terminal.getvalue(stderr=True), Equals(expected_err))
Exemplo n.º 33
0
    def test_configure_must_support_debug(self):
        logger_name = self.id()
        log.configure(logger_name, log_level=logging.DEBUG)
        logger = logging.getLogger(logger_name)

        logger.debug("Test debug")
        logger.info("Test info")
        logger.warning("Test warning")
        logger.error("Test error")
        logger.critical("Test critical")

        stdout = self.fake_terminal.getvalue()
        self.assertThat(stdout, Contains("Test debug"))
        expected_info = "{}Test info\033[0m".format(self.info_color)
        self.assertThat(stdout, Contains(expected_info))

        stderr = self.fake_terminal.getvalue(stderr=True)
        expected_warning = "{}Test warning\033[0m".format(self.warning_color)
        self.assertThat(stderr, Contains(expected_warning))
        expected_error = "{}Test error\033[0m".format(self.error_color)
        self.assertThat(stderr, Contains(expected_error))
        expected_crit = "{}Test critical\033[0m".format(self.critical_color)
        self.assertThat(stderr, Contains(expected_crit))
Exemplo n.º 34
0
    def test_configure_must_log_info_and_higher(self):
        logger_name = self.id()
        log.configure(logger_name)
        logger = logging.getLogger(logger_name)

        logger.debug('Test debug')
        logger.info('Test info')
        logger.warning('Test warning')
        logger.error('Test error')
        logger.critical('Test critical')

        stdout = self.fake_terminal.getvalue()
        self.assertThat(stdout, Not(Contains('Test debug')))
        expected_info = '{}Test info\033[0m'.format(self.info_color)
        self.assertThat(stdout, Contains(expected_info))
        expected_warning = '{}Test warning\033[0m'.format(self.warning_color)
        self.assertThat(stdout, Contains(expected_warning))

        stderr = self.fake_terminal.getvalue(stderr=True)
        expected_error = '{}Test error\033[0m'.format(self.error_color)
        self.assertThat(stderr, Contains(expected_error))
        expected_crit = '{}Test critical\033[0m'.format(self.critical_color)
        self.assertThat(stderr, Contains(expected_crit))