From 1e57089a7f7ca1b158a8d864f7c2fb81df8131ce Mon Sep 17 00:00:00 2001 From: boxydog Date: Fri, 31 May 2024 09:09:41 -0500 Subject: [PATCH] Fix unit tests --- pelican/__init__.py | 2 +- pelican/log.py | 17 ++++++++++++++--- pelican/tests/__init__.py | 3 ++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/pelican/__init__.py b/pelican/__init__.py index 247be4f5b..6455f3948 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -634,7 +634,7 @@ def main(argv=None): logs_dedup_min_level = getattr(logging, args.logs_dedup_min_level) init_logging( level=args.verbosity, - fatal=args.fatal if args.fatal != "ignore" else "", + fatal=args.fatal, name=__name__, handler=args.log_handler, logs_dedup_min_level=logs_dedup_min_level, diff --git a/pelican/log.py b/pelican/log.py index b60a1aef6..cf9f5db95 100644 --- a/pelican/log.py +++ b/pelican/log.py @@ -136,8 +136,18 @@ def init( name=None, logs_dedup_min_level=None, ): + """Initialize the logger. + + :param level: the log level + :param fatal: how to set up the FatalLogger. If "warning", then warnings are fatal. + If fatal is set to anything other than "" or "ignore", + then errors are fatal. + :param handler: the logging handler + :param name: the name of the logger to use + :param logs_dedup_min_level: the LimitFilter.LOGS_DEDUP_MIN_LEVEL to use + """ FatalLogger.warnings_fatal = fatal.startswith("warning") - FatalLogger.errors_fatal = bool(fatal) + FatalLogger.errors_fatal = bool(fatal) and fatal != "ignore" LOG_FORMAT = "%(message)s" logging.basicConfig( @@ -155,12 +165,13 @@ def init( LimitFilter.LOGS_DEDUP_MIN_LEVEL = logs_dedup_min_level -def log_warnings(): +def log_warnings(fatal: str) -> None: + """Redirect warnings module to use logging instead.""" import warnings logging.captureWarnings(True) warnings.simplefilter("default", DeprecationWarning) - init(logging.DEBUG, name="py.warnings") + init(logging.DEBUG, name="py.warnings", fatal=fatal) if __name__ == "__main__": diff --git a/pelican/tests/__init__.py b/pelican/tests/__init__.py index 564e417cf..2d5ecb1c5 100644 --- a/pelican/tests/__init__.py +++ b/pelican/tests/__init__.py @@ -4,7 +4,8 @@ from pelican.log import log_warnings # redirect warnings module to use logging instead -log_warnings() +# "ignore" means "don't raise on logging an error" +log_warnings("ignore") # setup warnings to log DeprecationWarning's and error on # warnings in pelican's codebase