|
@@ -2,6 +2,7 @@ import subprocess
|
|
|
|
|
|
from flexmock import flexmock
|
|
|
|
|
|
+import borgmatic.hooks.command
|
|
|
from borgmatic.commands import borgmatic as module
|
|
|
|
|
|
|
|
@@ -42,6 +43,28 @@ def test_run_configuration_without_error_pings_monitoring_hooks_start_and_finish
|
|
|
list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
|
|
|
|
|
|
+def test_run_configuration_with_borg_version_error_pings_after_command_hook_with_fail_state():
|
|
|
+ config = {
|
|
|
+ 'repositories': [{'path': 'foo'}],
|
|
|
+ 'commands': ({'after': 'configuration', 'run': ['echo after'], 'states': ['fail']},),
|
|
|
+ }
|
|
|
+ arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|
|
|
+ flexmock(module.borg_version).should_receive('local_borg_version').and_raise(ValueError)
|
|
|
+ flexmock(module).should_receive('run_actions').and_return([])
|
|
|
+ flexmock(module.dispatch).should_receive('call_hooks')
|
|
|
+ flexmock(borgmatic.hooks.command).should_receive('execute_hooks')
|
|
|
+ flexmock(borgmatic.hooks.command).should_receive('execute_hooks').with_args(
|
|
|
+ config['commands'],
|
|
|
+ umask=object,
|
|
|
+ working_directory=object,
|
|
|
+ dry_run=False,
|
|
|
+ log_file=object,
|
|
|
+ configuration_filename=object,
|
|
|
+ ).once()
|
|
|
+
|
|
|
+ list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|
|
|
+
|
|
|
+
|
|
|
def test_run_configuration_with_action_error_pings_monioring_hooks_start_and_fail():
|
|
|
config = {'repositories': [{'path': 'foo'}]}
|
|
|
arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
|