This commit is contained in:
Vandal
2025-03-25 21:57:06 +05:30
parent ea5a2d8a46
commit 203e84b91f
2 changed files with 29 additions and 3 deletions
+11 -3
View File
@@ -29,6 +29,10 @@ def recreate_archive(
'''
lock_wait = config.get('lock_wait', None)
if archive is None:
logger.error('Please provide a valid archive name.')
return
repo_archive_arg = make_repository_archive_flags(repository, archive, local_borg_version)
exclude_flags = make_exclude_flags(config)
@@ -40,9 +44,13 @@ def recreate_archive(
recreate_cmd = (
(local_path, 'recreate')
+ (('--remote-path', remote_path) if remote_path else ())
+ (('--path', recreate_arguments.path) if recreate_arguments.path else ())
+ (
('--path', recreate_arguments.path)
if hasattr(recreate_arguments, 'path') and recreate_arguments.path
else ()
)
+ (('--log-json',) if global_arguments.log_json else ())
+ (('--lock-wait', str(lock_wait)) if lock_wait else ())
+ (('--lock-wait', str(lock_wait)) if lock_wait is not None else ())
+ (('--info',) if logger.getEffectiveLevel() == logging.INFO else ())
+ (('--debug', '--show-rc') if logger.isEnabledFor(logging.DEBUG) else ())
+ (('--patterns-from', patterns_file.name) if patterns_file else ())
@@ -52,7 +60,7 @@ def recreate_archive(
'--filter',
make_list_filter_flags(local_borg_version, global_arguments.dry_run),
)
if recreate_arguments.list
if hasattr(recreate_arguments, 'list') and recreate_arguments.list
else ()
)
+ exclude_flags
+18
View File
@@ -64,6 +64,24 @@ def test_recreate_calls_borg_with_required_flags():
)
def test_recreate_calls_borg_without_archive():
logger_mock = flexmock(module.logger)
logger_mock.should_receive('error').with_args('Please provide a valid archive name.').once()
flexmock(module.borgmatic.execute).should_receive('execute_command').never()
module.recreate_archive(
repository='repo',
archive=None,
config={},
local_borg_version='1.2.3',
recreate_arguments=flexmock(path=None, list=None),
global_arguments=flexmock(dry_run=False, log_json=False),
local_path='borg',
patterns=None,
)
def test_recreate_with_remote_path():
flexmock(module.borgmatic.borg.flags).should_receive('make_repository_flags').and_return(
('repo::archive',)