From a0e2a98735385fcb1d295e55dc6e9c9f220fd69f Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Fri, 19 Sep 2025 10:31:31 -0700 Subject: [PATCH] Treat configuration file permissions issues as errors instead of warnings. --- NEWS | 1 + borgmatic/commands/borgmatic.py | 4 ++-- tests/unit/commands/test_borgmatic.py | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 38748947..e115eca1 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,7 @@ support the "bootstrap" action. * #1136: For all database hooks, record metadata about the dumps contained within an archive. * #1139: Set "borgmatic" as the user agent when connecting to monitoring services. + * Treat configuration file permissions issues as errors instead of warnings. * When running tests, use Ruff for faster and more comprehensive code linting and formatting, replacing Flake8, Black, isort, etc. * Switch from pipx to uv for installing development tools, and added tox-uv for speeding up test diff --git a/borgmatic/commands/borgmatic.py b/borgmatic/commands/borgmatic.py index e2e59d76..768d339e 100644 --- a/borgmatic/commands/borgmatic.py +++ b/borgmatic/commands/borgmatic.py @@ -663,8 +663,8 @@ def load_configurations(config_filenames, arguments, overrides=None, resolve_env [ logging.makeLogRecord( dict( - levelno=logging.WARNING, - levelname='WARNING', + levelno=logging.CRITICAL, + levelname='CRITICAL', msg=f'{config_filename}: Insufficient permissions to read configuration file', ), ), diff --git a/tests/unit/commands/test_borgmatic.py b/tests/unit/commands/test_borgmatic.py index 542f2586..0031efbf 100644 --- a/tests/unit/commands/test_borgmatic.py +++ b/tests/unit/commands/test_borgmatic.py @@ -1695,7 +1695,7 @@ def test_load_configurations_collects_parsed_configurations_and_logs(resolve_env assert set(logs) >= set(test_expected_logs + other_expected_logs) -def test_load_configurations_logs_warning_for_permission_error(): +def test_load_configurations_logs_error_for_permission_error(): flexmock(module.validate).should_receive('parse_configuration').and_raise(PermissionError) configs, config_paths, logs = tuple( @@ -1704,7 +1704,7 @@ def test_load_configurations_logs_warning_for_permission_error(): assert configs == {} assert config_paths == [] - assert max(log.levelno for log in logs) == logging.WARNING + assert max(log.levelno for log in logs) == logging.CRITICAL def test_load_configurations_logs_critical_for_parse_error():