1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-22 07:43:06 +00:00

to_key_filename: generate different filenames for rel/abs paths

This commit is contained in:
Thomas Waldmann 2024-10-14 14:56:18 +02:00
parent d60303eb8c
commit 72fc028142
No known key found for this signature in database
GPG key ID: 243ACFA951F78E01
2 changed files with 14 additions and 14 deletions

View file

@ -593,7 +593,7 @@ def __str__(self):
return ", ".join(items)
def to_key_filename(self):
name = re.sub(r"[^\w]", "_", self.path).strip("_")
name = re.sub(r"[^\w]", "_", self.path.rstrip("/"))
if self.proto not in ("file", "socket", "rclone"):
name = re.sub(r"[^\w]", "_", self.host) + "__" + name
if len(name) > 100:

View file

@ -111,7 +111,7 @@ def test_ssh(self, monkeypatch, keys_dir):
repr(Location("ssh://user@host:1234/some/path"))
== "Location(proto='ssh', user='user', host='host', port=1234, path='/some/path')"
)
assert Location("ssh://user@host:1234/some/path").to_key_filename() == keys_dir + "host__some_path"
assert Location("ssh://user@host:1234/some/path").to_key_filename() == keys_dir + "host___some_path"
assert (
repr(Location("ssh://user@host:1234/some/path"))
== "Location(proto='ssh', user='user', host='host', port=1234, path='/some/path')"
@ -128,7 +128,7 @@ def test_ssh(self, monkeypatch, keys_dir):
repr(Location("ssh://user@[::]:1234/some/path"))
== "Location(proto='ssh', user='user', host='::', port=1234, path='/some/path')"
)
assert Location("ssh://user@[::]:1234/some/path").to_key_filename() == keys_dir + "____some_path"
assert Location("ssh://user@[::]:1234/some/path").to_key_filename() == keys_dir + "_____some_path"
assert (
repr(Location("ssh://user@[::]/some/path"))
== "Location(proto='ssh', user='user', host='::', port=None, path='/some/path')"
@ -142,7 +142,7 @@ def test_ssh(self, monkeypatch, keys_dir):
== "Location(proto='ssh', user='user', host='2001:db8::', port=1234, path='/some/path')"
)
assert (
Location("ssh://user@[2001:db8::]:1234/some/path").to_key_filename() == keys_dir + "2001_db8____some_path"
Location("ssh://user@[2001:db8::]:1234/some/path").to_key_filename() == keys_dir + "2001_db8_____some_path"
)
assert (
repr(Location("ssh://user@[2001:db8::]/some/path"))
@ -174,7 +174,7 @@ def test_ssh(self, monkeypatch, keys_dir):
)
assert (
Location("ssh://user@[2001:db8::192.0.2.1]/some/path").to_key_filename()
== keys_dir + "2001_db8__192_0_2_1__some_path"
== keys_dir + "2001_db8__192_0_2_1___some_path"
)
assert (
repr(Location("ssh://user@[2a02:0001:0002:0003:0004:0005:0006:0007]/some/path"))
@ -208,7 +208,7 @@ def test_sftp(self, monkeypatch, keys_dir):
repr(Location("sftp://user@host:1234//abs/path"))
== "Location(proto='sftp', user='user', host='host', port=1234, path='/abs/path')"
)
assert Location("sftp://user@host:1234//abs/path").to_key_filename() == keys_dir + "host__abs_path"
assert Location("sftp://user@host:1234//abs/path").to_key_filename() == keys_dir + "host___abs_path"
def test_socket(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -216,7 +216,7 @@ def test_socket(self, monkeypatch, keys_dir):
repr(Location("socket:///repo/path"))
== "Location(proto='socket', user=None, host=None, port=None, path='/repo/path')"
)
assert Location("socket:///some/path").to_key_filename() == keys_dir + "some_path"
assert Location("socket:///some/path").to_key_filename() == keys_dir + "_some_path"
def test_file(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -228,7 +228,7 @@ def test_file(self, monkeypatch, keys_dir):
repr(Location("file:///some/path"))
== "Location(proto='file', user=None, host=None, port=None, path='/some/path')"
)
assert Location("file:///some/path").to_key_filename() == keys_dir + "some_path"
assert Location("file:///some/path").to_key_filename() == keys_dir + "_some_path"
def test_smb(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -236,7 +236,7 @@ def test_smb(self, monkeypatch, keys_dir):
repr(Location("file:////server/share/path"))
== "Location(proto='file', user=None, host=None, port=None, path='//server/share/path')"
)
assert Location("file:////server/share/path").to_key_filename() == keys_dir + "server_share_path"
assert Location("file:////server/share/path").to_key_filename() == keys_dir + "__server_share_path"
def test_folder(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -257,12 +257,12 @@ def test_abspath(self, monkeypatch, keys_dir):
repr(Location("/some/absolute/path"))
== "Location(proto='file', user=None, host=None, port=None, path='/some/absolute/path')"
)
assert Location("/some/absolute/path").to_key_filename() == keys_dir + "some_absolute_path"
assert Location("/some/absolute/path").to_key_filename() == keys_dir + "_some_absolute_path"
assert (
repr(Location("ssh://user@host/some/path"))
== "Location(proto='ssh', user='user', host='host', port=None, path='/some/path')"
)
assert Location("ssh://user@host/some/path").to_key_filename() == keys_dir + "host__some_path"
assert Location("ssh://user@host/some/path").to_key_filename() == keys_dir + "host___some_path"
def test_relpath(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -279,12 +279,12 @@ def test_relpath(self, monkeypatch, keys_dir):
repr(Location("ssh://user@host/./some/path"))
== "Location(proto='ssh', user='user', host='host', port=None, path='/./some/path')"
)
assert Location("ssh://user@host/./some/path").to_key_filename() == keys_dir + "host__some_path"
assert Location("ssh://user@host/./some/path").to_key_filename() == keys_dir + "host_____some_path"
assert (
repr(Location("ssh://user@host/~/some/path"))
== "Location(proto='ssh', user='user', host='host', port=None, path='/~/some/path')"
)
assert Location("ssh://user@host/~/some/path").to_key_filename() == keys_dir + "host__some_path"
assert Location("ssh://user@host/~/some/path").to_key_filename() == keys_dir + "host_____some_path"
def test_with_colons(self, monkeypatch, keys_dir):
monkeypatch.delenv("BORG_REPO", raising=False)
@ -300,7 +300,7 @@ def test_with_colons(self, monkeypatch, keys_dir):
repr(Location("/abs/path:with:colons"))
== "Location(proto='file', user=None, host=None, port=None, path='/abs/path:with:colons')"
)
assert Location("/abs/path:with:colons").to_key_filename() == keys_dir + "abs_path_with_colons"
assert Location("/abs/path:with:colons").to_key_filename() == keys_dir + "_abs_path_with_colons"
def test_canonical_path(self, monkeypatch):
monkeypatch.delenv("BORG_REPO", raising=False)