test_break_lock.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import logging
  2. from flexmock import flexmock
  3. from borgmatic.borg import break_lock as module
  4. from ..test_verbosity import insert_logging_mock
  5. def insert_execute_command_mock(command, borg_exit_codes=None):
  6. flexmock(module.environment).should_receive('make_environment')
  7. flexmock(module).should_receive('execute_command').with_args(
  8. command,
  9. borg_local_path=command[0],
  10. borg_exit_codes=borg_exit_codes,
  11. extra_environment=None,
  12. ).once()
  13. def test_break_lock_calls_borg_with_required_flags():
  14. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  15. insert_execute_command_mock(('borg', 'break-lock', 'repo'))
  16. module.break_lock(
  17. repository_path='repo',
  18. config={},
  19. local_borg_version='1.2.3',
  20. global_arguments=flexmock(log_json=False),
  21. )
  22. def test_break_lock_calls_borg_with_local_path():
  23. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  24. insert_execute_command_mock(('borg1', 'break-lock', 'repo'))
  25. module.break_lock(
  26. repository_path='repo',
  27. config={},
  28. local_borg_version='1.2.3',
  29. global_arguments=flexmock(log_json=False),
  30. local_path='borg1',
  31. )
  32. def test_break_lock_calls_borg_using_exit_codes():
  33. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  34. insert_execute_command_mock(('borg1', 'break-lock', 'repo'))
  35. module.break_lock(
  36. repository_path='repo',
  37. config={},
  38. local_borg_version='1.2.3',
  39. global_arguments=flexmock(log_json=False),
  40. local_path='borg1',
  41. )
  42. def test_break_lock_calls_borg_with_remote_path_flags():
  43. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  44. insert_execute_command_mock(('borg', 'break-lock', '--remote-path', 'borg1', 'repo'))
  45. module.break_lock(
  46. repository_path='repo',
  47. config={},
  48. local_borg_version='1.2.3',
  49. global_arguments=flexmock(log_json=False),
  50. remote_path='borg1',
  51. )
  52. def test_break_lock_calls_borg_with_umask_flags():
  53. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  54. insert_execute_command_mock(('borg', 'break-lock', '--umask', '0770', 'repo'))
  55. module.break_lock(
  56. repository_path='repo',
  57. config={'umask': '0770'},
  58. local_borg_version='1.2.3',
  59. global_arguments=flexmock(log_json=False),
  60. )
  61. def test_break_lock_calls_borg_with_log_json_flags():
  62. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  63. insert_execute_command_mock(('borg', 'break-lock', '--log-json', 'repo'))
  64. module.break_lock(
  65. repository_path='repo',
  66. config={},
  67. local_borg_version='1.2.3',
  68. global_arguments=flexmock(log_json=True),
  69. )
  70. def test_break_lock_calls_borg_with_lock_wait_flags():
  71. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  72. insert_execute_command_mock(('borg', 'break-lock', '--lock-wait', '5', 'repo'))
  73. module.break_lock(
  74. repository_path='repo',
  75. config={'lock_wait': '5'},
  76. local_borg_version='1.2.3',
  77. global_arguments=flexmock(log_json=False),
  78. )
  79. def test_break_lock_with_log_info_calls_borg_with_info_parameter():
  80. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  81. insert_execute_command_mock(('borg', 'break-lock', '--info', 'repo'))
  82. insert_logging_mock(logging.INFO)
  83. module.break_lock(
  84. repository_path='repo',
  85. config={},
  86. local_borg_version='1.2.3',
  87. global_arguments=flexmock(log_json=False),
  88. )
  89. def test_break_lock_with_log_debug_calls_borg_with_debug_flags():
  90. flexmock(module.flags).should_receive('make_repository_flags').and_return(('repo',))
  91. insert_execute_command_mock(('borg', 'break-lock', '--debug', '--show-rc', 'repo'))
  92. insert_logging_mock(logging.DEBUG)
  93. module.break_lock(
  94. repository_path='repo',
  95. config={},
  96. local_borg_version='1.2.3',
  97. global_arguments=flexmock(log_json=False),
  98. )