|
|
@ -1,5 +1,6 @@ |
|
|
|
import logging |
|
|
|
|
|
|
|
import pytest |
|
|
|
from flexmock import flexmock |
|
|
|
|
|
|
|
from borgmatic.borg import list as module |
|
|
@ -14,7 +15,9 @@ def test_list_archives_calls_borg_with_parameters(): |
|
|
|
LIST_COMMAND, output_log_level=logging.WARNING |
|
|
|
) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=False) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_log_info_calls_borg_with_info_parameter(): |
|
|
@ -23,7 +26,9 @@ def test_list_archives_with_log_info_calls_borg_with_info_parameter(): |
|
|
|
) |
|
|
|
insert_logging_mock(logging.INFO) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=False) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_log_info_and_json_suppresses_most_borg_output(): |
|
|
@ -32,7 +37,9 @@ def test_list_archives_with_log_info_and_json_suppresses_most_borg_output(): |
|
|
|
) |
|
|
|
insert_logging_mock(logging.INFO) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}, json=True) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=True) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_log_debug_calls_borg_with_debug_parameter(): |
|
|
@ -41,7 +48,9 @@ def test_list_archives_with_log_debug_calls_borg_with_debug_parameter(): |
|
|
|
) |
|
|
|
insert_logging_mock(logging.DEBUG) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=False) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_log_debug_and_json_suppresses_most_borg_output(): |
|
|
@ -50,7 +59,9 @@ def test_list_archives_with_log_debug_and_json_suppresses_most_borg_output(): |
|
|
|
) |
|
|
|
insert_logging_mock(logging.DEBUG) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}, json=True) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=True) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_lock_wait_calls_borg_with_lock_wait_parameters(): |
|
|
@ -59,7 +70,11 @@ def test_list_archives_with_lock_wait_calls_borg_with_lock_wait_parameters(): |
|
|
|
LIST_COMMAND + ('--lock-wait', '5'), output_log_level=logging.WARNING |
|
|
|
) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config=storage_config) |
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config=storage_config, |
|
|
|
list_arguments=flexmock(archive=None, json=False), |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_archive_calls_borg_with_archive_parameter(): |
|
|
@ -68,7 +83,11 @@ def test_list_archives_with_archive_calls_borg_with_archive_parameter(): |
|
|
|
('borg', 'list', 'repo::archive'), output_log_level=logging.WARNING |
|
|
|
) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config=storage_config, archive='archive') |
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config=storage_config, |
|
|
|
list_arguments=flexmock(archive='archive', json=False), |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_local_path_calls_borg_via_local_path(): |
|
|
@ -76,7 +95,12 @@ def test_list_archives_with_local_path_calls_borg_via_local_path(): |
|
|
|
('borg1',) + LIST_COMMAND[1:], output_log_level=logging.WARNING |
|
|
|
) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}, local_path='borg1') |
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config={}, |
|
|
|
list_arguments=flexmock(archive=None, json=False), |
|
|
|
local_path='borg1', |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_remote_path_calls_borg_with_remote_path_parameters(): |
|
|
@ -84,7 +108,51 @@ def test_list_archives_with_remote_path_calls_borg_with_remote_path_parameters() |
|
|
|
LIST_COMMAND + ('--remote-path', 'borg1'), output_log_level=logging.WARNING |
|
|
|
) |
|
|
|
|
|
|
|
module.list_archives(repository='repo', storage_config={}, remote_path='borg1') |
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config={}, |
|
|
|
list_arguments=flexmock(archive=None, json=False), |
|
|
|
remote_path='borg1', |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_short_calls_borg_with_short_parameter(): |
|
|
|
flexmock(module).should_receive('execute_command').with_args( |
|
|
|
LIST_COMMAND + ('--short',), output_log_level=logging.WARNING |
|
|
|
).and_return('[]') |
|
|
|
|
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config={}, |
|
|
|
list_arguments=flexmock(archive=None, json=False, short=True), |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize( |
|
|
|
'argument_name', |
|
|
|
( |
|
|
|
'prefix', |
|
|
|
'glob_archives', |
|
|
|
'sort_by', |
|
|
|
'first', |
|
|
|
'last', |
|
|
|
'exclude', |
|
|
|
'exclude_from', |
|
|
|
'pattern', |
|
|
|
'pattern_from', |
|
|
|
), |
|
|
|
) |
|
|
|
def test_list_archives_passes_through_arguments_to_borg(argument_name): |
|
|
|
flexmock(module).should_receive('execute_command').with_args( |
|
|
|
LIST_COMMAND + ('--' + argument_name.replace('_', '-'), 'value'), |
|
|
|
output_log_level=logging.WARNING, |
|
|
|
).and_return('[]') |
|
|
|
|
|
|
|
module.list_archives( |
|
|
|
repository='repo', |
|
|
|
storage_config={}, |
|
|
|
list_arguments=flexmock(archive=None, json=False, **{argument_name: 'value'}), |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
def test_list_archives_with_json_calls_borg_with_json_parameter(): |
|
|
@ -92,6 +160,8 @@ def test_list_archives_with_json_calls_borg_with_json_parameter(): |
|
|
|
LIST_COMMAND + ('--json',), output_log_level=None |
|
|
|
).and_return('[]') |
|
|
|
|
|
|
|
json_output = module.list_archives(repository='repo', storage_config={}, json=True) |
|
|
|
json_output = module.list_archives( |
|
|
|
repository='repo', storage_config={}, list_arguments=flexmock(archive=None, json=True) |
|
|
|
) |
|
|
|
|
|
|
|
assert json_output == '[]' |