mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-10 01:10:53 -04:00
fix config dir compatibility issue, fixes #7445 - add tests - make sure the result of get_cache_dir matches pre and post #7300 where desired - harmonize implementation of config_dir_compat and cache_dir_compat tests Co-authored-by: nain <126972030+F49FF806@users.noreply.github.com>
This commit is contained in:
parent
1428ffeae9
commit
dfef2b9092
2 changed files with 28 additions and 8 deletions
|
|
@ -106,7 +106,7 @@ def get_cache_dir(*, legacy=False):
|
|||
cache_dir = os.environ.get("BORG_CACHE_DIR", os.path.join(cache_home, "borg"))
|
||||
else:
|
||||
cache_dir = os.environ.get(
|
||||
"BORG_CACHE_DIR", join_base_dir(".cache", legacy=legacy) or platformdirs.user_cache_dir("borg")
|
||||
"BORG_CACHE_DIR", join_base_dir(".cache", "borg", legacy=legacy) or platformdirs.user_cache_dir("borg")
|
||||
)
|
||||
|
||||
# Create path if it doesn't exist yet
|
||||
|
|
@ -143,7 +143,7 @@ def get_config_dir(*, legacy=False):
|
|||
config_dir = os.environ.get("BORG_CONFIG_DIR", os.path.join(config_home, "borg"))
|
||||
else:
|
||||
config_dir = os.environ.get(
|
||||
"BORG_CONFIG_DIR", join_base_dir(".config", legacy=legacy) or platformdirs.user_config_dir("borg")
|
||||
"BORG_CONFIG_DIR", join_base_dir(".config", "borg", legacy=legacy) or platformdirs.user_config_dir("borg")
|
||||
)
|
||||
|
||||
# Create path if it doesn't exist yet
|
||||
|
|
|
|||
|
|
@ -635,19 +635,20 @@ def test_get_config_dir(monkeypatch):
|
|||
|
||||
def test_get_config_dir_compat(monkeypatch):
|
||||
"""test that it works the same for legacy and for non-legacy implementation"""
|
||||
monkeypatch.delenv("BORG_CONFIG_DIR", raising=False)
|
||||
monkeypatch.delenv("BORG_BASE_DIR", raising=False)
|
||||
monkeypatch.delenv("XDG_CONFIG_HOME", raising=False)
|
||||
if not is_darwin and not is_win32:
|
||||
monkeypatch.delenv("BORG_CONFIG_DIR", raising=False)
|
||||
monkeypatch.delenv("XDG_CONFIG_HOME", raising=False)
|
||||
# fails on macOS: assert '/Users/tw/Library/Application Support/borg' == '/Users/tw/.config/borg'
|
||||
# fails on win32 MSYS2 (but we do not need legacy compat there).
|
||||
assert get_config_dir(legacy=False) == get_config_dir(legacy=True)
|
||||
if not is_darwin and not is_win32:
|
||||
monkeypatch.setenv("XDG_CONFIG_HOME", "/var/tmp/.config1")
|
||||
# fails on macOS: assert '/Users/tw/Library/Application Support/borg' == '/var/tmp/.config1/borg'
|
||||
monkeypatch.setenv("XDG_CONFIG_HOME", "/var/tmp/xdg.config.d")
|
||||
# fails on macOS: assert '/Users/tw/Library/Application Support/borg' == '/var/tmp/xdg.config.d'
|
||||
# fails on win32 MSYS2 (but we do not need legacy compat there).
|
||||
assert get_config_dir(legacy=False) == get_config_dir(legacy=True)
|
||||
monkeypatch.setenv("BORG_CONFIG_DIR", "/var/tmp/.config2")
|
||||
monkeypatch.setenv("BORG_BASE_DIR", "/var/tmp/base")
|
||||
assert get_config_dir(legacy=False) == get_config_dir(legacy=True)
|
||||
monkeypatch.setenv("BORG_CONFIG_DIR", "/var/tmp/borg.config.d")
|
||||
assert get_config_dir(legacy=False) == get_config_dir(legacy=True)
|
||||
|
||||
|
||||
|
|
@ -675,6 +676,25 @@ def test_get_cache_dir(monkeypatch):
|
|||
assert get_cache_dir() == "/var/tmp"
|
||||
|
||||
|
||||
def test_get_cache_dir_compat(monkeypatch):
|
||||
"""test that it works the same for legacy and for non-legacy implementation"""
|
||||
monkeypatch.delenv("BORG_CACHE_DIR", raising=False)
|
||||
monkeypatch.delenv("BORG_BASE_DIR", raising=False)
|
||||
monkeypatch.delenv("XDG_CACHE_HOME", raising=False)
|
||||
if not is_darwin and not is_win32:
|
||||
# fails on macOS: assert '/Users/tw/Library/Caches/borg' == '/Users/tw/.cache/borg'
|
||||
# fails on win32 MSYS2 (but we do not need legacy compat there).
|
||||
assert get_cache_dir(legacy=False) == get_cache_dir(legacy=True)
|
||||
# fails on macOS: assert '/Users/tw/Library/Caches/borg' == '/var/tmp/xdg.cache.d'
|
||||
# fails on win32 MSYS2 (but we do not need legacy compat there).
|
||||
monkeypatch.setenv("XDG_CACHE_HOME", "/var/tmp/xdg.cache.d")
|
||||
assert get_cache_dir(legacy=False) == get_cache_dir(legacy=True)
|
||||
monkeypatch.setenv("BORG_BASE_DIR", "/var/tmp/base")
|
||||
assert get_cache_dir(legacy=False) == get_cache_dir(legacy=True)
|
||||
monkeypatch.setenv("BORG_CACHE_DIR", "/var/tmp/borg.cache.d")
|
||||
assert get_cache_dir(legacy=False) == get_cache_dir(legacy=True)
|
||||
|
||||
|
||||
def test_get_keys_dir(monkeypatch):
|
||||
"""test that get_keys_dir respects environment"""
|
||||
monkeypatch.delenv("BORG_BASE_DIR", raising=False)
|
||||
|
|
|
|||
Loading…
Reference in a new issue