|
@@ -92,3 +92,91 @@ def test_run_recreate_with_latest_archive_resolving_to_leftover_recreate_archive
|
|
|
local_path=None,
|
|
|
remote_path=None,
|
|
|
)
|
|
|
+
|
|
|
+
|
|
|
+def test_run_recreate_with_archive_already_exists_error_raises():
|
|
|
+ flexmock(module.logger).answer = lambda message: None
|
|
|
+ flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
|
|
|
+ flexmock(module.borgmatic.config.paths).should_receive('get_working_directory').and_return(
|
|
|
+ flexmock()
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.repo_list).should_receive('resolve_archive_name').and_return(
|
|
|
+ 'test-archive'
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.recreate).should_receive('recreate_archive').and_raise(
|
|
|
+ module.subprocess.CalledProcessError(
|
|
|
+ returncode=module.BORG_EXIT_CODE_ARCHIVE_ALREADY_EXISTS,
|
|
|
+ cmd='borg recreate or whatever',
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ with pytest.raises(ValueError):
|
|
|
+ module.run_recreate(
|
|
|
+ repository={'path': 'repo'},
|
|
|
+ config={},
|
|
|
+ local_borg_version=None,
|
|
|
+ recreate_arguments=flexmock(repository=flexmock(), archive='test-archive', target=None),
|
|
|
+ global_arguments=flexmock(),
|
|
|
+ local_path=None,
|
|
|
+ remote_path=None,
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def test_run_recreate_with_target_and_archive_already_exists_error_raises():
|
|
|
+ flexmock(module.logger).answer = lambda message: None
|
|
|
+ flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
|
|
|
+ flexmock(module.borgmatic.config.paths).should_receive('get_working_directory').and_return(
|
|
|
+ flexmock()
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.repo_list).should_receive('resolve_archive_name').and_return(
|
|
|
+ 'test-archive'
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.recreate).should_receive('recreate_archive').and_raise(
|
|
|
+ module.subprocess.CalledProcessError(
|
|
|
+ returncode=module.BORG_EXIT_CODE_ARCHIVE_ALREADY_EXISTS,
|
|
|
+ cmd='borg recreate or whatever',
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ with pytest.raises(ValueError):
|
|
|
+ module.run_recreate(
|
|
|
+ repository={'path': 'repo'},
|
|
|
+ config={},
|
|
|
+ local_borg_version=None,
|
|
|
+ recreate_arguments=flexmock(
|
|
|
+ repository=flexmock(), archive='test-archive', target='target-archive'
|
|
|
+ ),
|
|
|
+ global_arguments=flexmock(),
|
|
|
+ local_path=None,
|
|
|
+ remote_path=None,
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+def test_run_recreate_with_other_called_process_error_passes_it_through():
|
|
|
+ flexmock(module.logger).answer = lambda message: None
|
|
|
+ flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
|
|
|
+ flexmock(module.borgmatic.config.paths).should_receive('get_working_directory').and_return(
|
|
|
+ flexmock()
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.repo_list).should_receive('resolve_archive_name').and_return(
|
|
|
+ 'test-archive'
|
|
|
+ )
|
|
|
+ flexmock(module.borgmatic.borg.recreate).should_receive('recreate_archive').and_raise(
|
|
|
+ module.subprocess.CalledProcessError(
|
|
|
+ returncode=1,
|
|
|
+ cmd='borg recreate or whatever',
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ with pytest.raises(module.subprocess.CalledProcessError):
|
|
|
+ module.run_recreate(
|
|
|
+ repository={'path': 'repo'},
|
|
|
+ config={},
|
|
|
+ local_borg_version=None,
|
|
|
+ recreate_arguments=flexmock(
|
|
|
+ repository=flexmock(), archive='test-archive', target='target-archive'
|
|
|
+ ),
|
|
|
+ global_arguments=flexmock(),
|
|
|
+ local_path=None,
|
|
|
+ remote_path=None,
|
|
|
+ )
|