123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import subprocess
- from flexmock import flexmock
- import borgmatic.hooks.command
- from borgmatic.commands import borgmatic as module
- def test_borgmatic_version_matches_news_version():
- flexmock(module.collect).should_receive('get_default_config_paths').and_return(['default'])
- borgmatic_version = subprocess.check_output(('borgmatic', '--version')).decode('ascii')
- news_version = open('NEWS').readline()
- assert borgmatic_version == news_version
- def test_run_configuration_without_error_pings_monitoring_hooks_start_and_finish():
- config = {'repositories': [{'path': 'foo'}]}
- arguments = {'global': flexmock(monitoring_verbosity=1, dry_run=False), 'create': flexmock()}
- flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
- flexmock(module).should_receive('run_actions').and_return([])
- flexmock(module.dispatch).should_receive('call_hooks')
- flexmock(module.dispatch).should_receive('call_hooks').with_args(
- 'ping_monitor',
- config,
- module.dispatch.Hook_type.MONITORING,
- 'test.yaml',
- module.monitor.State.START,
- object,
- object,
- ).once()
- flexmock(module.dispatch).should_receive('call_hooks').with_args(
- 'ping_monitor',
- config,
- module.dispatch.Hook_type.MONITORING,
- 'test.yaml',
- module.monitor.State.FINISH,
- object,
- object,
- ).once()
- 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()}
- flexmock(module.borg_version).should_receive('local_borg_version').and_return(flexmock())
- flexmock(module).should_receive('run_actions').and_raise(OSError)
- flexmock(module.dispatch).should_receive('call_hooks')
- flexmock(module.dispatch).should_receive('call_hooks').with_args(
- 'ping_monitor',
- config,
- module.dispatch.Hook_type.MONITORING,
- 'test.yaml',
- module.monitor.State.START,
- object,
- object,
- ).once()
- flexmock(module.dispatch).should_receive('call_hooks').with_args(
- 'ping_monitor',
- config,
- module.dispatch.Hook_type.MONITORING,
- 'test.yaml',
- module.monitor.State.FAIL,
- object,
- object,
- ).once()
- list(module.run_configuration('test.yaml', config, ['/tmp/test.yaml'], arguments))
|