Ejemplo n.º 1
0
    def test_wrapped_logger_has_original_logger(self):
        import logging
        logger = logging.getLogger()
        logger_attr = "logger"

        wrapped_logger = pkg_logging.LoggerWrapper(logger)

        self.assertHasAttr(wrapped_logger, logger_attr)
        self.assertIs(getattr(wrapped_logger, logger_attr), logger)
Ejemplo n.º 2
0
    def test_wrapped_logger_shares_interface(self):
        import logging
        logger = logging.getLogger()
        attrs = ("debug info warning error critical exception "
                 "name level").split()

        wrapped_logger = pkg_logging.LoggerWrapper(logger)

        for attr in attrs:
            with self.subTest(expected_attr=attr):
                self.assertHasAttr(logger, attr, msg="Precondition!")
                self.assertHasAttr(wrapped_logger, attr)
Ejemplo n.º 3
0
    def test_wrapped_logger_autologs_nonExceptions_with_specified_level(self):
        expected_level = "DEBUG"
        import logging
        logger = logging.getLogger(self.random_name)

        wrapped_logger = pkg_logging.LoggerWrapper(logger)

        self.assertNotEqual(wrapped_logger.level,
                            self.coded_levels.get(expected_level),
                            msg="Precondition")
        with self.assertLogs(logger=wrapped_logger.logger,
                             level=expected_level):
            wrapped_logger.autolog(self.message, level=expected_level)
Ejemplo n.º 4
0
    def test_wrapped_logger_logs(self):
        import logging
        logger = logging.getLogger()
        levels = "DEBUG INFO WARNING ERROR CRITICAL".split()

        wrapped_logger = pkg_logging.LoggerWrapper(logger)
        # Preconditon: agnostic of logger setting, essentially tests the
        # handlers.
        pkg_logging.setLevel("DEBUG")

        for level in levels:
            with self.subTest(level=level):
                self.wrapped_logger_logs(wrapped_logger, level)
Ejemplo n.º 5
0
    def test_wrapped_logger_autologs_exceptions_specially(self):
        import logging
        logger = logging.getLogger(self.random_name)
        logger.setLevel("WARNING")
        msg = self.message
        msg_warn = msg + str(hash("WARNING"))
        msg_err = msg + str(hash("ERROR"))
        msg_crit = msg + str(hash("CRITICAL"))
        errors = {
            "ERROR": exceptions.RecomposeError(msg_warn),
            "WARNING": exceptions.RecomposeWarning(msg_err),
            "CRITICAL": Exception(msg_crit)
        }

        wrapped_logger = pkg_logging.LoggerWrapper(logger)

        for level, error in errors.items():
            with self.subTest(log_exc_expecting=error):
                with self.assertLogs() as captured:
                    wrapped_logger.autolog(error)
                expected = [level, str(error)]
                output = captured.output.pop()
                self.assertSubstringsInString(expected, output)