Use --glob-archives instead of --prefix on rlist command (#557).

This commit is contained in:
Dan Helfman 2022-08-17 14:26:35 -07:00
parent 28d847b8b1
commit 596dd49cf5
3 changed files with 37 additions and 15 deletions

View file

@ -41,7 +41,7 @@ def make_list_command(
) )
+ flags.make_flags('remote-path', remote_path) + flags.make_flags('remote-path', remote_path)
+ flags.make_flags('lock-wait', lock_wait) + flags.make_flags('lock-wait', lock_wait)
+ flags.make_flags_from_arguments(list_arguments, excludes=MAKE_FLAGS_EXCLUDES,) + flags.make_flags_from_arguments(list_arguments, excludes=MAKE_FLAGS_EXCLUDES)
+ ( + (
flags.make_repository_archive_flags( flags.make_repository_archive_flags(
repository, list_arguments.archive, local_borg_version repository, list_arguments.archive, local_borg_version

View file

@ -51,7 +51,7 @@ def resolve_archive_name(
return latest_archive return latest_archive
MAKE_FLAGS_EXCLUDES = ('repository',) MAKE_FLAGS_EXCLUDES = ('repository', 'prefix')
def make_rlist_command( def make_rlist_command(
@ -86,7 +86,12 @@ def make_rlist_command(
) )
+ flags.make_flags('remote-path', remote_path) + flags.make_flags('remote-path', remote_path)
+ flags.make_flags('lock-wait', lock_wait) + flags.make_flags('lock-wait', lock_wait)
+ flags.make_flags_from_arguments(rlist_arguments, excludes=MAKE_FLAGS_EXCLUDES,) + (
flags.make_flags('glob-archives', f'{rlist_arguments.prefix}*')
if rlist_arguments.prefix
else ()
)
+ flags.make_flags_from_arguments(rlist_arguments, excludes=MAKE_FLAGS_EXCLUDES)
+ flags.make_repository_flags(repository, local_borg_version) + flags.make_repository_flags(repository, local_borg_version)
) )

View file

@ -153,7 +153,7 @@ def test_make_rlist_command_includes_log_info():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None),
) )
assert command == ('borg', 'list', '--info', 'repo') assert command == ('borg', 'list', '--info', 'repo')
@ -169,7 +169,7 @@ def test_make_rlist_command_includes_json_but_not_info():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=True), rlist_arguments=flexmock(archive=None, paths=None, json=True, prefix=None),
) )
assert command == ('borg', 'list', '--json', 'repo') assert command == ('borg', 'list', '--json', 'repo')
@ -185,7 +185,7 @@ def test_make_rlist_command_includes_log_debug():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None),
) )
assert command == ('borg', 'list', '--debug', '--show-rc', 'repo') assert command == ('borg', 'list', '--debug', '--show-rc', 'repo')
@ -201,7 +201,7 @@ def test_make_rlist_command_includes_json_but_not_debug():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=True), rlist_arguments=flexmock(archive=None, paths=None, json=True, prefix=None),
) )
assert command == ('borg', 'list', '--json', 'repo') assert command == ('borg', 'list', '--json', 'repo')
@ -216,7 +216,7 @@ def test_make_rlist_command_includes_json():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=True), rlist_arguments=flexmock(archive=None, paths=None, json=True, prefix=None),
) )
assert command == ('borg', 'list', '--json', 'repo') assert command == ('borg', 'list', '--json', 'repo')
@ -225,7 +225,7 @@ def test_make_rlist_command_includes_json():
def test_make_rlist_command_includes_lock_wait(): def test_make_rlist_command_includes_lock_wait():
flexmock(module.flags).should_receive('make_flags').and_return(()).and_return( flexmock(module.flags).should_receive('make_flags').and_return(()).and_return(
('--lock-wait', '5') ('--lock-wait', '5')
) ).and_return(())
flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(()) flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(())
flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',)) flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
@ -233,7 +233,7 @@ def test_make_rlist_command_includes_lock_wait():
repository='repo', repository='repo',
storage_config={'lock_wait': 5}, storage_config={'lock_wait': 5},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None),
) )
assert command == ('borg', 'list', '--lock-wait', '5', 'repo') assert command == ('borg', 'list', '--lock-wait', '5', 'repo')
@ -248,7 +248,7 @@ def test_make_rlist_command_includes_local_path():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None),
local_path='borg2', local_path='borg2',
) )
@ -258,7 +258,7 @@ def test_make_rlist_command_includes_local_path():
def test_make_rlist_command_includes_remote_path(): def test_make_rlist_command_includes_remote_path():
flexmock(module.flags).should_receive('make_flags').and_return( flexmock(module.flags).should_receive('make_flags').and_return(
('--remote-path', 'borg2') ('--remote-path', 'borg2')
).and_return(()) ).and_return(()).and_return(())
flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(()) flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(())
flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',)) flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
@ -266,13 +266,30 @@ def test_make_rlist_command_includes_remote_path():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None),
remote_path='borg2', remote_path='borg2',
) )
assert command == ('borg', 'list', '--remote-path', 'borg2', 'repo') assert command == ('borg', 'list', '--remote-path', 'borg2', 'repo')
def test_make_rlist_command_transforms_prefix_into_glob_archives():
flexmock(module.flags).should_receive('make_flags').and_return(()).and_return(()).and_return(
('--glob-archives', 'foo*')
)
flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(())
flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
command = module.make_rlist_command(
repository='repo',
storage_config={},
local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix='foo'),
)
assert command == ('borg', 'list', '--glob-archives', 'foo*', 'repo')
def test_make_rlist_command_includes_short(): def test_make_rlist_command_includes_short():
flexmock(module.flags).should_receive('make_flags').and_return(()) flexmock(module.flags).should_receive('make_flags').and_return(())
flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(('--short',)) flexmock(module.flags).should_receive('make_flags_from_arguments').and_return(('--short',))
@ -282,7 +299,7 @@ def test_make_rlist_command_includes_short():
repository='repo', repository='repo',
storage_config={}, storage_config={},
local_borg_version='1.2.3', local_borg_version='1.2.3',
rlist_arguments=flexmock(archive=None, paths=None, json=False, short=True), rlist_arguments=flexmock(archive=None, paths=None, json=False, prefix=None, short=True),
) )
assert command == ('borg', 'list', '--short', 'repo') assert command == ('borg', 'list', '--short', 'repo')
@ -291,7 +308,6 @@ def test_make_rlist_command_includes_short():
@pytest.mark.parametrize( @pytest.mark.parametrize(
'argument_name', 'argument_name',
( (
'prefix',
'glob_archives', 'glob_archives',
'sort_by', 'sort_by',
'first', 'first',
@ -317,6 +333,7 @@ def test_make_rlist_command_includes_additional_flags(argument_name):
archive=None, archive=None,
paths=None, paths=None,
json=False, json=False,
prefix=None,
find_paths=None, find_paths=None,
format=None, format=None,
**{argument_name: 'value'}, **{argument_name: 'value'},