Fix unit tests

This commit is contained in:
boxydog 2024-05-31 09:09:41 -05:00
commit 1e57089a7f
3 changed files with 17 additions and 5 deletions

View file

@ -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,

View file

@ -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__":

View file

@ -4,7 +4,8 @@ import warnings
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