diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..045cfad6a --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,3 @@ +Release type: major + +Change default of `--fatal` command line switch to terminate on error. diff --git a/pelican/__init__.py b/pelican/__init__.py index ab6b0225f..247be4f5b 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -438,12 +438,12 @@ def parse_arguments(argv=None): parser.add_argument( "--fatal", - metavar="errors|warnings", - choices=("errors", "warnings"), - default="", + metavar="errors|warnings|ignore", + choices=("errors", "warnings", "ignore"), + default="errors", help=( "Exit the program with non-zero status if any " - "errors/warnings encountered." + "errors/warnings encountered, or ignore any errors." ), ) @@ -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, + fatal=args.fatal if args.fatal != "ignore" else "", 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 edf2f1826..b60a1aef6 100644 --- a/pelican/log.py +++ b/pelican/log.py @@ -131,7 +131,7 @@ def error(self, *args, stacklevel=1, **kwargs): def init( level=None, - fatal="", + fatal="errors", handler=DEFAULT_LOG_HANDLER, name=None, logs_dedup_min_level=None, diff --git a/pelican/tests/test_init.py b/pelican/tests/test_init.py new file mode 100644 index 000000000..1f8e156b6 --- /dev/null +++ b/pelican/tests/test_init.py @@ -0,0 +1,20 @@ +import unittest +from unittest.mock import MagicMock, patch + +from pelican import DEFAULT_LOG_HANDLER, main + + +class TestLog(unittest.TestCase): + @patch("pelican.get_instance") + @patch("pelican.init_logging") + def test_main_fatal_default(self, init_logging_mock, get_instance): + get_instance.side_effect = lambda *args, **kwargs: (MagicMock(), MagicMock()) + main() + init_logging_mock.assert_called_once_with( + level=None, + # default is "errors" + fatal="errors", + name="pelican", + handler=DEFAULT_LOG_HANDLER, + logs_dedup_min_level=30, + )