|
@@ -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 == '[]'
|