|
@@ -1,6 +1,4 @@
|
|
|
import os
|
|
|
-import shutil
|
|
|
-import tempfile
|
|
|
|
|
|
import pytest
|
|
|
|
|
@@ -15,7 +13,7 @@ from ..upgrader import AtticRepositoryUpgrader, AtticKeyfileKey
|
|
|
from ..helpers import get_keys_dir
|
|
|
from ..key import KeyfileKey
|
|
|
from ..remote import RemoteRepository
|
|
|
-from ..repository import Repository, MAGIC
|
|
|
+from ..repository import Repository
|
|
|
|
|
|
|
|
|
def repo_valid(path):
|
|
@@ -61,10 +59,12 @@ def attic_repo(tmpdir):
|
|
|
attic_repo.close()
|
|
|
return attic_repo
|
|
|
|
|
|
+
|
|
|
@pytest.fixture(params=[True, False])
|
|
|
def inplace(request):
|
|
|
return request.param
|
|
|
|
|
|
+
|
|
|
@pytest.mark.skipif(attic is None, reason='cannot find an attic install')
|
|
|
def test_convert_segments(tmpdir, attic_repo, inplace):
|
|
|
"""test segment conversion
|
|
@@ -159,10 +159,13 @@ def test_convert_all(tmpdir, attic_repo, attic_key_file, inplace):
|
|
|
"""
|
|
|
# check should fail because of magic number
|
|
|
assert not repo_valid(tmpdir)
|
|
|
+
|
|
|
def stat_segment(path):
|
|
|
return os.stat(os.path.join(path, 'data', '0', '0'))
|
|
|
+
|
|
|
def first_inode(path):
|
|
|
return stat_segment(path).st_ino
|
|
|
+
|
|
|
orig_inode = first_inode(attic_repo.path)
|
|
|
repo = AtticRepositoryUpgrader(str(tmpdir), create=False)
|
|
|
# replicate command dispatch, partly
|
|
@@ -176,11 +179,12 @@ def test_convert_all(tmpdir, attic_repo, attic_key_file, inplace):
|
|
|
assert first_inode(repo.path) != first_inode(backup)
|
|
|
# i have seen cases where the copied tree has world-readable
|
|
|
# permissions, which is wrong
|
|
|
- assert stat_segment(backup).st_mode & 0o007== 0
|
|
|
+ assert stat_segment(backup).st_mode & 0o007 == 0
|
|
|
|
|
|
assert key_valid(attic_key_file.path)
|
|
|
assert repo_valid(tmpdir)
|
|
|
|
|
|
+
|
|
|
def test_hardlink(tmpdir, inplace):
|
|
|
"""test that we handle hard links properly
|
|
|
|