From fd7ad86daaaa1cc950e47e0b69a126e58df29262 Mon Sep 17 00:00:00 2001 From: palto42 <12280188+palto42@users.noreply.github.com> Date: Tue, 3 Jan 2023 21:44:36 +0100 Subject: [PATCH] conditional warning for excluding special files --- borgmatic/borg/create.py | 21 ++++++++++----------- tests/unit/borg/test_create.py | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/borgmatic/borg/create.py b/borgmatic/borg/create.py index 9a71a81..75baf66 100644 --- a/borgmatic/borg/create.py +++ b/borgmatic/borg/create.py @@ -430,18 +430,17 @@ def create_archive( borg_environment, skip_directories=borgmatic_source_directories, ) - logger.warning( - f'{repository}: Excluding special files to prevent Borg from hanging: {", ".join(special_file_paths)}' - ) - exclude_file = write_pattern_file( - expand_home_directories( - tuple(location_config.get('exclude_patterns') or ()) + special_file_paths - ), - pattern_file=exclude_file, - ) - - if exclude_file: + if special_file_paths: + logger.warning( + f'{repository}: Excluding special files to prevent Borg from hanging: {", ".join(special_file_paths)}' + ) + exclude_file = write_pattern_file( + expand_home_directories( + tuple(location_config.get('exclude_patterns') or ()) + special_file_paths + ), + pattern_file=exclude_file, + ) create_command += make_exclude_flags(location_config, exclude_file.name) create_command += ( diff --git a/tests/unit/borg/test_create.py b/tests/unit/borg/test_create.py index d9dda00..d853e2d 100644 --- a/tests/unit/borg/test_create.py +++ b/tests/unit/borg/test_create.py @@ -1790,7 +1790,7 @@ def test_create_archive_with_stream_processes_ignores_read_special_false_and_log flexmock(module).should_receive('pattern_root_directories').and_return([]) flexmock(module.os.path).should_receive('expanduser').and_raise(TypeError) flexmock(module).should_receive('expand_home_directories').and_return(()) - flexmock(module).should_receive('write_pattern_file').and_return(None) + flexmock(module).should_receive('write_pattern_file').and_return(flexmock(name='/tmp/excludes')) flexmock(module.feature).should_receive('available').and_return(True) flexmock(module).should_receive('ensure_files_readable') flexmock(module.logger).should_receive('warning').twice() @@ -1800,7 +1800,7 @@ def test_create_archive_with_stream_processes_ignores_read_special_false_and_log (f'repo::{DEFAULT_ARCHIVE_NAME}',) ) flexmock(module.environment).should_receive('make_environment') - flexmock(module).should_receive('collect_special_file_paths').and_return(()) + flexmock(module).should_receive('collect_special_file_paths').and_return(("/dev/null",)) create_command = ( 'borg', 'create',