Disallow borg list --json with --archive or --find (#557).
This commit is contained in:
parent
cc04bf57df
commit
7626fe1189
3 changed files with 17 additions and 30 deletions
|
@ -117,9 +117,14 @@ def list_archive(
|
|||
for flag_name in ('prefix', 'glob-archives', 'sort-by', 'first', 'last'):
|
||||
if getattr(list_arguments, flag_name.replace('-', '_'), None):
|
||||
raise ValueError(
|
||||
f'The --{flag_name} flag on the list action is not supported when using the --archive flag and Borg 2.x.'
|
||||
f'The --{flag_name} flag on the list action is not supported when using the --archive/--find flags and Borg 2.x.'
|
||||
)
|
||||
|
||||
if list_arguments.json:
|
||||
raise ValueError(
|
||||
'The --json flag on the list action is not supported when using the --archive/--find flags.'
|
||||
)
|
||||
|
||||
borg_environment = environment.make_environment(storage_config)
|
||||
|
||||
# If there are any paths to find (and there's not a single archive already selected), start by
|
||||
|
@ -173,12 +178,9 @@ def list_archive(
|
|||
remote_path,
|
||||
) + make_find_paths(list_arguments.find_paths)
|
||||
|
||||
output = execute_command(
|
||||
execute_command(
|
||||
main_command,
|
||||
output_log_level=None if list_arguments.json else logging.WARNING,
|
||||
output_log_level=logging.WARNING,
|
||||
borg_local_path=local_path,
|
||||
extra_environment=borg_environment,
|
||||
)
|
||||
|
||||
if list_arguments.json:
|
||||
return output
|
||||
|
|
|
@ -626,7 +626,7 @@ def make_parsers():
|
|||
'--successful',
|
||||
default=True,
|
||||
action='store_true',
|
||||
help='Deprecated; no effect. Newer versions of Borg list successful (non-checkpoint) archives by default.',
|
||||
help='Deprecated; no effect. Newer versions of Borg shows successful (non-checkpoint) archives by default.',
|
||||
)
|
||||
list_group.add_argument(
|
||||
'--sort-by', metavar='KEYS', help='Comma-separated list of sorting keys'
|
||||
|
|
|
@ -282,33 +282,18 @@ def test_list_archive_calls_borg_with_parameters():
|
|||
)
|
||||
|
||||
|
||||
def test_list_archive_with_json_suppresses_most_borg_output():
|
||||
def test_list_archive_with_archive_and_json_errors():
|
||||
list_arguments = argparse.Namespace(archive='archive', paths=None, json=True, find_paths=None)
|
||||
|
||||
flexmock(module.feature).should_receive('available').and_return(False)
|
||||
flexmock(module).should_receive('make_list_command').with_args(
|
||||
repository='repo',
|
||||
storage_config={},
|
||||
local_borg_version='1.2.3',
|
||||
list_arguments=list_arguments,
|
||||
local_path='borg',
|
||||
remote_path=None,
|
||||
).and_return(('borg', 'list', 'repo::archive'))
|
||||
flexmock(module).should_receive('make_find_paths').and_return(())
|
||||
flexmock(module.environment).should_receive('make_environment')
|
||||
flexmock(module).should_receive('execute_command').with_args(
|
||||
('borg', 'list', 'repo::archive'),
|
||||
output_log_level=None,
|
||||
borg_local_path='borg',
|
||||
extra_environment=None,
|
||||
).once()
|
||||
|
||||
module.list_archive(
|
||||
repository='repo',
|
||||
storage_config={},
|
||||
local_borg_version='1.2.3',
|
||||
list_arguments=list_arguments,
|
||||
)
|
||||
with pytest.raises(ValueError):
|
||||
module.list_archive(
|
||||
repository='repo',
|
||||
storage_config={},
|
||||
local_borg_version='1.2.3',
|
||||
list_arguments=list_arguments,
|
||||
)
|
||||
|
||||
|
||||
def test_list_archive_calls_borg_with_local_path():
|
||||
|
|
Loading…
Reference in a new issue