Merge pull request #6243 from hexagonrecursion/test-keyfile

Test: borg init refuses to overwrite keyfile
This commit is contained in:
TW 2022-02-06 00:04:51 +01:00 committed by GitHub
commit d4eb9bbd35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 0 deletions

View File

@ -28,6 +28,7 @@ from unittest.mock import patch
import pytest
import borg
import borg.helpers.errors
from .. import xattr, helpers, platform
from ..archive import Archive, ChunkBuffer
from ..archiver import Archiver, parse_storage_quota, PURE_PYTHON_MSGPACK_WARNING
@ -2864,6 +2865,25 @@ class ArchiverTestCase(ArchiverTestCaseBase):
with pytest.raises(Repository.AlreadyExists):
self.cmd('init', '--encryption=repokey', self.repository_location + '/nested')
def test_init_refuse_to_overwrite_keyfile(self):
"""BORG_KEY_FILE=something borg init should quit if "something" already exists.
See https://github.com/borgbackup/borg/pull/6046"""
keyfile = os.path.join(self.tmpdir, 'keyfile')
with environment_variable(BORG_KEY_FILE=keyfile):
self.cmd('init', '--encryption=keyfile', self.repository_location + '0')
with open(keyfile) as file:
before = file.read()
arg = ('init', '--encryption=keyfile', self.repository_location + '1')
if self.FORK_DEFAULT:
self.cmd(*arg, exit_code=2)
else:
with pytest.raises(borg.helpers.errors.Error):
self.cmd(*arg)
with open(keyfile) as file:
after = file.read()
assert before == after
def check_cache(self):
# First run a regular borg check
self.cmd('check', self.repository_location)