Expand source directories when checking for existence (#682).
Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/683
This commit is contained in:
commit
5829196b70
2 changed files with 16 additions and 1 deletions
|
@ -314,7 +314,7 @@ def check_all_source_directories_exist(source_directories):
|
||||||
missing_directories = [
|
missing_directories = [
|
||||||
source_directory
|
source_directory
|
||||||
for source_directory in source_directories
|
for source_directory in source_directories
|
||||||
if not os.path.exists(source_directory)
|
if not all([os.path.exists(directory) for directory in expand_directory(source_directory)])
|
||||||
]
|
]
|
||||||
if missing_directories:
|
if missing_directories:
|
||||||
raise ValueError(f"Source directories do not exist: {', '.join(missing_directories)}")
|
raise ValueError(f"Source directories do not exist: {', '.join(missing_directories)}")
|
||||||
|
|
|
@ -2565,3 +2565,18 @@ def test_create_archive_with_non_existent_directory_and_source_directories_must_
|
||||||
storage_config={},
|
storage_config={},
|
||||||
local_borg_version='1.2.3',
|
local_borg_version='1.2.3',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_check_all_source_directories_exist_with_glob_and_tilde_directories():
|
||||||
|
flexmock(module).should_receive('expand_directory').with_args('foo*').and_return(
|
||||||
|
('foo', 'food')
|
||||||
|
)
|
||||||
|
flexmock(module).should_receive('expand_directory').with_args('~/bar').and_return(
|
||||||
|
('/root/bar',)
|
||||||
|
)
|
||||||
|
flexmock(module.os.path).should_receive('exists').and_return(False)
|
||||||
|
flexmock(module.os.path).should_receive('exists').with_args('foo').and_return(True)
|
||||||
|
flexmock(module.os.path).should_receive('exists').with_args('food').and_return(True)
|
||||||
|
flexmock(module.os.path).should_receive('exists').with_args('/root/bar').and_return(True)
|
||||||
|
|
||||||
|
module.check_all_source_directories_exist(['foo*', '~/bar'])
|
||||||
|
|
Loading…
Reference in a new issue