test_version.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import logging
  2. import pytest
  3. from flexmock import flexmock
  4. from borgmatic.borg import version as module
  5. from ..test_verbosity import insert_logging_mock
  6. VERSION = '1.2.3'
  7. def insert_execute_command_mock(command, borg_local_path='borg', version_output=f'borg {VERSION}'):
  8. flexmock(module).should_receive('execute_command').with_args(
  9. command, output_log_level=None, borg_local_path=borg_local_path
  10. ).once().and_return(version_output)
  11. def test_local_borg_version_calls_borg_with_required_parameters():
  12. insert_execute_command_mock(('borg', '--version'))
  13. assert module.local_borg_version() == VERSION
  14. def test_local_borg_version_with_log_info_calls_borg_with_info_parameter():
  15. insert_execute_command_mock(('borg', '--version', '--info'))
  16. insert_logging_mock(logging.INFO)
  17. assert module.local_borg_version() == VERSION
  18. def test_local_borg_version_with_log_debug_calls_borg_with_debug_parameters():
  19. insert_execute_command_mock(('borg', '--version', '--debug', '--show-rc'))
  20. insert_logging_mock(logging.DEBUG)
  21. assert module.local_borg_version() == VERSION
  22. def test_local_borg_version_with_local_borg_path_calls_borg_with_it():
  23. insert_execute_command_mock(('borg1', '--version'), borg_local_path='borg1')
  24. assert module.local_borg_version('borg1') == VERSION
  25. def test_local_borg_version_with_invalid_version_raises():
  26. insert_execute_command_mock(('borg', '--version'), version_output='wtf')
  27. with pytest.raises(ValueError):
  28. module.local_borg_version()