|
@@ -30,6 +30,7 @@ def test_get_skip_actions_uses_config_and_arguments(config, arguments, expected_
|
|
|
def test_run_configuration_runs_actions_for_each_repository():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
expected_results = [flexmock(), flexmock()]
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
@@ -37,7 +38,7 @@ def test_run_configuration_runs_actions_for_each_repository():
|
|
|
expected_results[1:]
|
|
|
)
|
|
|
config = {'repositories': [{'path': 'foo'}, {'path': 'bar'}]}
|
|
|
- arguments = {'global': flexmock(monitoring_verbosity=1)}
|
|
|
+ arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False)}
|
|
|
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
|
|
@@ -47,11 +48,12 @@ def test_run_configuration_runs_actions_for_each_repository():
|
|
|
def test_run_configuration_with_skip_actions_does_not_raise():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return(['compact'])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_return(flexmock()).and_return(flexmock())
|
|
|
config = {'repositories': [{'path': 'foo'}, {'path': 'bar'}], 'skip_actions': ['compact']}
|
|
|
- arguments = {'global': flexmock(monitoring_verbosity=1)}
|
|
|
+ arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False)}
|
|
|
|
|
|
list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
|
|
@@ -59,8 +61,8 @@ def test_run_configuration_with_skip_actions_does_not_raise():
|
|
|
def test_run_configuration_with_invalid_borg_version_errors():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_raise(ValueError)
|
|
|
- flexmock(module.command).should_receive('execute_hook').never()
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').never()
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').never()
|
|
@@ -73,6 +75,7 @@ def test_run_configuration_with_invalid_borg_version_errors():
|
|
|
def test_run_configuration_logs_monitor_start_error():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_raise(OSError).and_return(
|
|
|
None
|
|
@@ -81,6 +84,8 @@ def test_run_configuration_logs_monitor_start_error():
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_results)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').never()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
|
|
@@ -92,6 +97,7 @@ def test_run_configuration_logs_monitor_start_error():
|
|
|
def test_run_configuration_bails_for_monitor_start_soft_failure():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
error = subprocess.CalledProcessError(borgmatic.hooks.command.SOFT_FAIL_EXIT_CODE, 'try again')
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_raise(error).and_return(None)
|
|
@@ -109,13 +115,15 @@ def test_run_configuration_bails_for_monitor_start_soft_failure():
|
|
|
def test_run_configuration_logs_actions_error():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module.dispatch).should_receive('call_hooks')
|
|
|
expected_results = [flexmock()]
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_results)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError)
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False)}
|
|
|
|
|
@@ -127,6 +135,7 @@ def test_run_configuration_logs_actions_error():
|
|
|
def test_run_configuration_skips_remaining_actions_for_actions_soft_failure_but_still_runs_next_repository_actions():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').times(5)
|
|
|
error = subprocess.CalledProcessError(borgmatic.hooks.command.SOFT_FAIL_EXIT_CODE, 'try again')
|
|
@@ -146,6 +155,7 @@ def test_run_configuration_skips_remaining_actions_for_actions_soft_failure_but_
|
|
|
def test_run_configuration_logs_monitor_log_error():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_return(None).and_return(
|
|
|
None
|
|
@@ -154,6 +164,8 @@ def test_run_configuration_logs_monitor_log_error():
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_results)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
|
|
@@ -165,6 +177,7 @@ def test_run_configuration_logs_monitor_log_error():
|
|
|
def test_run_configuration_still_pings_monitor_for_monitor_log_soft_failure():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
error = subprocess.CalledProcessError(borgmatic.hooks.command.SOFT_FAIL_EXIT_CODE, 'try again')
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_return(None).and_return(
|
|
@@ -185,6 +198,7 @@ def test_run_configuration_still_pings_monitor_for_monitor_log_soft_failure():
|
|
|
def test_run_configuration_logs_monitor_finish_error():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_return(None).and_return(
|
|
|
None
|
|
@@ -193,6 +207,8 @@ def test_run_configuration_logs_monitor_finish_error():
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_results)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
|
|
@@ -204,6 +220,7 @@ def test_run_configuration_logs_monitor_finish_error():
|
|
|
def test_run_configuration_bails_for_monitor_finish_soft_failure():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
error = subprocess.CalledProcessError(borgmatic.hooks.command.SOFT_FAIL_EXIT_CODE, 'try again')
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').and_return(None).and_return(
|
|
@@ -224,6 +241,7 @@ def test_run_configuration_bails_for_monitor_finish_soft_failure():
|
|
|
def test_run_configuration_does_not_call_monitoring_hooks_if_monitoring_hooks_are_disabled():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(module.DISABLED)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
|
|
|
flexmock(module.dispatch).should_receive('call_hooks').never()
|
|
@@ -239,8 +257,10 @@ def test_run_configuration_does_not_call_monitoring_hooks_if_monitoring_hooks_ar
|
|
|
def test_run_configuration_logs_on_error_hook_error():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook').and_raise(OSError)
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks').and_raise(OSError)
|
|
|
expected_results = [flexmock(), flexmock()]
|
|
|
flexmock(module).should_receive('log_error_records').and_return(
|
|
|
expected_results[:1]
|
|
@@ -258,9 +278,11 @@ def test_run_configuration_logs_on_error_hook_error():
|
|
|
def test_run_configuration_bails_for_on_error_hook_soft_failure():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
error = subprocess.CalledProcessError(borgmatic.hooks.command.SOFT_FAIL_EXIT_CODE, 'try again')
|
|
|
- flexmock(module.command).should_receive('execute_hook').and_raise(error)
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks').and_raise(error)
|
|
|
expected_results = [flexmock()]
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_results)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
@@ -277,14 +299,18 @@ def test_run_configuration_retries_soft_error():
|
|
|
# Run action first fails, second passes.
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).and_return([])
|
|
|
flexmock(module).should_receive('log_error_records').and_return([flexmock()]).once()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks').never()
|
|
|
+ flexmock(module.command).should_receive('execute_hooks').never()
|
|
|
config = {'repositories': [{'path': 'foo'}], 'retries': 1}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == []
|
|
|
|
|
|
|
|
@@ -292,8 +318,8 @@ def test_run_configuration_retries_hard_error():
|
|
|
# Run action fails twice.
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).times(2)
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
@@ -307,17 +333,21 @@ def test_run_configuration_retries_hard_error():
|
|
|
'Error running actions for repository',
|
|
|
OSError,
|
|
|
).and_return(error_logs)
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}], 'retries': 1}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == error_logs
|
|
|
|
|
|
|
|
|
-def test_run_configuration_repos_ordered():
|
|
|
+def test_run_configuration_retries_repositories_in_order():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).times(2)
|
|
|
expected_results = [flexmock(), flexmock()]
|
|
@@ -327,17 +357,21 @@ def test_run_configuration_repos_ordered():
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
|
'Error running actions for repository', OSError
|
|
|
).and_return(expected_results[1:]).ordered()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {'repositories': [{'path': 'foo'}, {'path': 'bar'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == expected_results
|
|
|
|
|
|
|
|
|
def test_run_configuration_retries_round_robin():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).times(4)
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
@@ -360,20 +394,24 @@ def test_run_configuration_retries_round_robin():
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
|
'Error running actions for repository', OSError
|
|
|
).and_return(bar_error_logs).ordered()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {
|
|
|
'repositories': [{'path': 'foo'}, {'path': 'bar'}],
|
|
|
'retries': 1,
|
|
|
}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == foo_error_logs + bar_error_logs
|
|
|
|
|
|
|
|
|
-def test_run_configuration_retries_one_passes():
|
|
|
+def test_run_configuration_with_one_retry():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).and_raise(OSError).and_return(
|
|
|
[]
|
|
@@ -394,20 +432,24 @@ def test_run_configuration_retries_one_passes():
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
|
'Error running actions for repository', OSError
|
|
|
).and_return(error_logs).ordered()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {
|
|
|
'repositories': [{'path': 'foo'}, {'path': 'bar'}],
|
|
|
'retries': 1,
|
|
|
}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == error_logs
|
|
|
|
|
|
|
|
|
-def test_run_configuration_retry_wait():
|
|
|
+def test_run_configuration_with_retry_wait_does_backoff_after_each_retry():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).times(4)
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
@@ -438,21 +480,25 @@ def test_run_configuration_retry_wait():
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
|
'Error running actions for repository', OSError
|
|
|
).and_return(error_logs).ordered()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {
|
|
|
'repositories': [{'path': 'foo'}],
|
|
|
'retries': 3,
|
|
|
'retry_wait': 10,
|
|
|
}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == error_logs
|
|
|
|
|
|
|
|
|
-def test_run_configuration_retries_timeout_multiple_repos():
|
|
|
+def test_run_configuration_with_multiple_repositories_retries_with_timeout():
|
|
|
flexmock(module).should_receive('verbosity_to_log_level').and_return(logging.INFO)
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_actions').and_raise(OSError).and_raise(OSError).and_return(
|
|
|
[]
|
|
@@ -479,20 +525,24 @@ def test_run_configuration_retries_timeout_multiple_repos():
|
|
|
flexmock(module).should_receive('log_error_records').with_args(
|
|
|
'Error running actions for repository', OSError
|
|
|
).and_return(error_logs).ordered()
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
config = {
|
|
|
'repositories': [{'path': 'foo'}, {'path': 'bar'}],
|
|
|
'retries': 1,
|
|
|
'retry_wait': 10,
|
|
|
}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+
|
|
|
results = list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
assert results == error_logs
|
|
|
|
|
|
|
|
|
def test_run_actions_runs_repo_create():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.repo_create).should_receive('run_repo_create').once()
|
|
|
|
|
|
tuple(
|
|
@@ -515,19 +565,13 @@ def test_run_actions_runs_repo_create():
|
|
|
def test_run_actions_adds_label_file_to_hook_context():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.create).should_receive('run_create').with_args(
|
|
|
config_filename=object,
|
|
|
repository={'path': 'repo', 'label': 'my repo'},
|
|
|
config={'repositories': []},
|
|
|
config_paths=[],
|
|
|
- hook_context={
|
|
|
- 'repository_label': 'my repo',
|
|
|
- 'log_file': '',
|
|
|
- 'repositories': '',
|
|
|
- 'repository': 'repo',
|
|
|
- },
|
|
|
local_borg_version=object,
|
|
|
create_arguments=object,
|
|
|
global_arguments=object,
|
|
@@ -554,19 +598,13 @@ def test_run_actions_adds_label_file_to_hook_context():
|
|
|
def test_run_actions_adds_log_file_to_hook_context():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.create).should_receive('run_create').with_args(
|
|
|
config_filename=object,
|
|
|
repository={'path': 'repo'},
|
|
|
config={'repositories': []},
|
|
|
config_paths=[],
|
|
|
- hook_context={
|
|
|
- 'repository_label': '',
|
|
|
- 'log_file': 'foo',
|
|
|
- 'repositories': '',
|
|
|
- 'repository': 'repo',
|
|
|
- },
|
|
|
local_borg_version=object,
|
|
|
create_arguments=object,
|
|
|
global_arguments=object,
|
|
@@ -593,7 +631,7 @@ def test_run_actions_adds_log_file_to_hook_context():
|
|
|
def test_run_actions_runs_transfer():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.transfer).should_receive('run_transfer').once()
|
|
|
|
|
|
tuple(
|
|
@@ -613,7 +651,7 @@ def test_run_actions_runs_transfer():
|
|
|
def test_run_actions_runs_create():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.create).should_receive('run_create').and_yield(expected).once()
|
|
|
|
|
@@ -635,7 +673,7 @@ def test_run_actions_runs_create():
|
|
|
def test_run_actions_with_skip_actions_skips_create():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return(['create'])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.create).should_receive('run_create').never()
|
|
|
|
|
|
tuple(
|
|
@@ -655,7 +693,7 @@ def test_run_actions_with_skip_actions_skips_create():
|
|
|
def test_run_actions_runs_prune():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.prune).should_receive('run_prune').once()
|
|
|
|
|
|
tuple(
|
|
@@ -675,7 +713,7 @@ def test_run_actions_runs_prune():
|
|
|
def test_run_actions_with_skip_actions_skips_prune():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return(['prune'])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.prune).should_receive('run_prune').never()
|
|
|
|
|
|
tuple(
|
|
@@ -695,7 +733,7 @@ def test_run_actions_with_skip_actions_skips_prune():
|
|
|
def test_run_actions_runs_compact():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.compact).should_receive('run_compact').once()
|
|
|
|
|
|
tuple(
|
|
@@ -715,7 +753,7 @@ def test_run_actions_runs_compact():
|
|
|
def test_run_actions_with_skip_actions_skips_compact():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return(['compact'])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.compact).should_receive('run_compact').never()
|
|
|
|
|
|
tuple(
|
|
@@ -735,7 +773,7 @@ def test_run_actions_with_skip_actions_skips_compact():
|
|
|
def test_run_actions_runs_check_when_repository_enabled_for_checks():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.checks).should_receive('repository_enabled_for_checks').and_return(True)
|
|
|
flexmock(borgmatic.actions.check).should_receive('run_check').once()
|
|
|
|
|
@@ -756,7 +794,7 @@ def test_run_actions_runs_check_when_repository_enabled_for_checks():
|
|
|
def test_run_actions_skips_check_when_repository_not_enabled_for_checks():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.checks).should_receive('repository_enabled_for_checks').and_return(False)
|
|
|
flexmock(borgmatic.actions.check).should_receive('run_check').never()
|
|
|
|
|
@@ -777,7 +815,7 @@ def test_run_actions_skips_check_when_repository_not_enabled_for_checks():
|
|
|
def test_run_actions_with_skip_actions_skips_check():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return(['check'])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(module.checks).should_receive('repository_enabled_for_checks').and_return(True)
|
|
|
flexmock(borgmatic.actions.check).should_receive('run_check').never()
|
|
|
|
|
@@ -798,7 +836,7 @@ def test_run_actions_with_skip_actions_skips_check():
|
|
|
def test_run_actions_runs_extract():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.extract).should_receive('run_extract').once()
|
|
|
|
|
|
tuple(
|
|
@@ -818,7 +856,7 @@ def test_run_actions_runs_extract():
|
|
|
def test_run_actions_runs_export_tar():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.export_tar).should_receive('run_export_tar').once()
|
|
|
|
|
|
tuple(
|
|
@@ -838,7 +876,7 @@ def test_run_actions_runs_export_tar():
|
|
|
def test_run_actions_runs_mount():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.mount).should_receive('run_mount').once()
|
|
|
|
|
|
tuple(
|
|
@@ -858,7 +896,7 @@ def test_run_actions_runs_mount():
|
|
|
def test_run_actions_runs_restore():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.restore).should_receive('run_restore').once()
|
|
|
|
|
|
tuple(
|
|
@@ -878,7 +916,7 @@ def test_run_actions_runs_restore():
|
|
|
def test_run_actions_runs_repo_list():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.repo_list).should_receive('run_repo_list').and_yield(expected).once()
|
|
|
|
|
@@ -900,7 +938,7 @@ def test_run_actions_runs_repo_list():
|
|
|
def test_run_actions_runs_list():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.list).should_receive('run_list').and_yield(expected).once()
|
|
|
|
|
@@ -922,7 +960,7 @@ def test_run_actions_runs_list():
|
|
|
def test_run_actions_runs_repo_info():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.repo_info).should_receive('run_repo_info').and_yield(expected).once()
|
|
|
|
|
@@ -944,7 +982,7 @@ def test_run_actions_runs_repo_info():
|
|
|
def test_run_actions_runs_info():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
expected = flexmock()
|
|
|
flexmock(borgmatic.actions.info).should_receive('run_info').and_yield(expected).once()
|
|
|
|
|
@@ -966,7 +1004,7 @@ def test_run_actions_runs_info():
|
|
|
def test_run_actions_runs_break_lock():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.break_lock).should_receive('run_break_lock').once()
|
|
|
|
|
|
tuple(
|
|
@@ -986,7 +1024,7 @@ def test_run_actions_runs_break_lock():
|
|
|
def test_run_actions_runs_export_key():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.export_key).should_receive('run_export_key').once()
|
|
|
|
|
|
tuple(
|
|
@@ -1006,7 +1044,7 @@ def test_run_actions_runs_export_key():
|
|
|
def test_run_actions_runs_change_passphrase():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.change_passphrase).should_receive('run_change_passphrase').once()
|
|
|
|
|
|
tuple(
|
|
@@ -1029,7 +1067,7 @@ def test_run_actions_runs_change_passphrase():
|
|
|
def test_run_actions_runs_delete():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.delete).should_receive('run_delete').once()
|
|
|
|
|
|
tuple(
|
|
@@ -1049,7 +1087,7 @@ def test_run_actions_runs_delete():
|
|
|
def test_run_actions_runs_repo_delete():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.repo_delete).should_receive('run_repo_delete').once()
|
|
|
|
|
|
tuple(
|
|
@@ -1072,7 +1110,7 @@ def test_run_actions_runs_repo_delete():
|
|
|
def test_run_actions_runs_borg():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.borg).should_receive('run_borg').once()
|
|
|
|
|
|
tuple(
|
|
@@ -1092,7 +1130,7 @@ def test_run_actions_runs_borg():
|
|
|
def test_run_actions_runs_multiple_actions_in_argument_order():
|
|
|
flexmock(module).should_receive('add_custom_log_levels')
|
|
|
flexmock(module).should_receive('get_skip_actions').and_return([])
|
|
|
- flexmock(module.command).should_receive('execute_hook')
|
|
|
+ flexmock(module.command).should_receive('Before_after_hooks').and_return(flexmock())
|
|
|
flexmock(borgmatic.actions.borg).should_receive('run_borg').once().ordered()
|
|
|
flexmock(borgmatic.actions.restore).should_receive('run_restore').once().ordered()
|
|
|
|
|
@@ -1398,11 +1436,12 @@ def test_collect_highlander_action_summary_logs_error_on_run_validate_failure():
|
|
|
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_info_for_success():
|
|
|
- flexmock(module.command).should_receive('execute_hook').never()
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
- arguments = {}
|
|
|
+ arguments = {'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1415,6 +1454,8 @@ def test_collect_configuration_run_summary_logs_info_for_success():
|
|
|
|
|
|
def test_collect_configuration_run_summary_executes_hooks_for_create():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
arguments = {'create': flexmock(), 'global': flexmock(monitoring_verbosity=1, dry_run=False)}
|
|
@@ -1430,9 +1471,11 @@ def test_collect_configuration_run_summary_executes_hooks_for_create():
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_info_for_success_with_extract():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
- arguments = {'extract': flexmock(repository='repo')}
|
|
|
+ arguments = {'extract': flexmock(repository='repo'), 'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1462,9 +1505,11 @@ def test_collect_configuration_run_summary_logs_extract_with_repository_error():
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_info_for_success_with_mount():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
- arguments = {'mount': flexmock(repository='repo')}
|
|
|
+ arguments = {'mount': flexmock(repository='repo'), 'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1481,7 +1526,7 @@ def test_collect_configuration_run_summary_logs_mount_with_repository_error():
|
|
|
)
|
|
|
expected_logs = (flexmock(),)
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_logs)
|
|
|
- arguments = {'mount': flexmock(repository='repo')}
|
|
|
+ arguments = {'mount': flexmock(repository='repo'), 'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1493,6 +1538,9 @@ def test_collect_configuration_run_summary_logs_mount_with_repository_error():
|
|
|
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_missing_configs_error():
|
|
|
+ flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
arguments = {'global': flexmock(config_paths=[])}
|
|
|
expected_logs = (flexmock(),)
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_logs)
|
|
@@ -1505,7 +1553,9 @@ def test_collect_configuration_run_summary_logs_missing_configs_error():
|
|
|
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_pre_hook_error():
|
|
|
- flexmock(module.command).should_receive('execute_hook').and_raise(ValueError)
|
|
|
+ flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks').and_raise(ValueError)
|
|
|
expected_logs = (flexmock(),)
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_logs)
|
|
|
arguments = {'create': flexmock(), 'global': flexmock(monitoring_verbosity=1, dry_run=False)}
|
|
@@ -1520,8 +1570,9 @@ def test_collect_configuration_run_summary_logs_pre_hook_error():
|
|
|
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_post_hook_error():
|
|
|
- flexmock(module.command).should_receive('execute_hook').and_return(None).and_raise(ValueError)
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks').and_return(None).and_raise(ValueError)
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
expected_logs = (flexmock(),)
|
|
@@ -1543,7 +1594,10 @@ def test_collect_configuration_run_summary_logs_for_list_with_archive_and_reposi
|
|
|
)
|
|
|
expected_logs = (flexmock(),)
|
|
|
flexmock(module).should_receive('log_error_records').and_return(expected_logs)
|
|
|
- arguments = {'list': flexmock(repository='repo', archive='test')}
|
|
|
+ arguments = {
|
|
|
+ 'list': flexmock(repository='repo', archive='test'),
|
|
|
+ 'global': flexmock(dry_run=False),
|
|
|
+ }
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1556,9 +1610,14 @@ def test_collect_configuration_run_summary_logs_for_list_with_archive_and_reposi
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_info_for_success_with_list():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
- arguments = {'list': flexmock(repository='repo', archive=None)}
|
|
|
+ arguments = {
|
|
|
+ 'list': flexmock(repository='repo', archive=None),
|
|
|
+ 'global': flexmock(dry_run=False),
|
|
|
+ }
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1571,12 +1630,14 @@ def test_collect_configuration_run_summary_logs_info_for_success_with_list():
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_run_configuration_error():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return(
|
|
|
[logging.makeLogRecord(dict(levelno=logging.CRITICAL, levelname='CRITICAL', msg='Error'))]
|
|
|
)
|
|
|
flexmock(module).should_receive('log_error_records').and_return([])
|
|
|
- arguments = {}
|
|
|
+ arguments = {'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1589,13 +1650,15 @@ def test_collect_configuration_run_summary_logs_run_configuration_error():
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_run_umount_error():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return([])
|
|
|
flexmock(module.borg_umount).should_receive('unmount_archive').and_raise(OSError)
|
|
|
flexmock(module).should_receive('log_error_records').and_return(
|
|
|
[logging.makeLogRecord(dict(levelno=logging.CRITICAL, levelname='CRITICAL', msg='Error'))]
|
|
|
)
|
|
|
- arguments = {'umount': flexmock(mount_point='/mnt')}
|
|
|
+ arguments = {'umount': flexmock(mount_point='/mnt'), 'global': flexmock(dry_run=False)}
|
|
|
|
|
|
logs = tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|
|
@@ -1608,6 +1671,8 @@ def test_collect_configuration_run_summary_logs_run_umount_error():
|
|
|
|
|
|
def test_collect_configuration_run_summary_logs_outputs_merged_json_results():
|
|
|
flexmock(module.validate).should_receive('guard_configuration_contains_repository')
|
|
|
+ flexmock(module.command).should_receive('filter_hooks')
|
|
|
+ flexmock(module.command).should_receive('execute_hooks')
|
|
|
flexmock(module).should_receive('Log_prefix').and_return(flexmock())
|
|
|
flexmock(module).should_receive('run_configuration').and_return(['foo', 'bar']).and_return(
|
|
|
['baz']
|
|
@@ -1615,7 +1680,7 @@ def test_collect_configuration_run_summary_logs_outputs_merged_json_results():
|
|
|
stdout = flexmock()
|
|
|
stdout.should_receive('write').with_args('["foo", "bar", "baz"]').once()
|
|
|
flexmock(module.sys).stdout = stdout
|
|
|
- arguments = {}
|
|
|
+ arguments = {'global': flexmock(dry_run=False)}
|
|
|
|
|
|
tuple(
|
|
|
module.collect_configuration_run_summary_logs(
|