summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Stone <a@stne.dev>2022-02-17 12:55:03 -0800
committerAndrew Stone <a@stne.dev>2022-02-17 13:13:12 -0800
commit1c7cd3d7af6bf86bd2c1946168e7de8a95b7f8e8 (patch)
tree35e875984ea4a7c390b71c6e224649878721f984
parenta03cef8cd23ad793aaf99c0957b85a4cd5f8ba5b (diff)
downloadrequests-cache-1c7cd3d7af6bf86bd2c1946168e7de8a95b7f8e8.tar.gz
Fix cache path expansion
-rw-r--r--requests_cache/backends/sqlite.py2
-rw-r--r--tests/unit/test_session.py6
2 files changed, 7 insertions, 1 deletions
diff --git a/requests_cache/backends/sqlite.py b/requests_cache/backends/sqlite.py
index 29bbf97..b95bad8 100644
--- a/requests_cache/backends/sqlite.py
+++ b/requests_cache/backends/sqlite.py
@@ -306,7 +306,7 @@ def get_cache_path(db_path: AnyPath, use_cache_dir: bool = False, use_temp: bool
db_path = Path(gettempdir()) / db_path
# Expand relative and user paths (~), make parent dir(s), and better error if parent is a file
- db_path = db_path.absolute().expanduser()
+ db_path = db_path.expanduser().absolute()
try:
db_path.parent.mkdir(parents=True, exist_ok=True)
except FileExistsError:
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index 626231d..8f70c02 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -4,6 +4,7 @@ import json
import time
from collections import UserDict, defaultdict
from datetime import datetime, timedelta
+from pathlib import Path
from pickle import PickleError
from unittest.mock import patch
from urllib.parse import urlencode
@@ -35,6 +36,11 @@ def test_init_unregistered_backend():
CachedSession(backend='nonexistent')
+def test_cache_path_expansion():
+ session = CachedSession('~', backend='filesystem')
+ assert session.cache.cache_dir == Path("~").expanduser()
+
+
@patch.dict(BACKEND_CLASSES, {'mongo': get_placeholder_class()})
def test_init_missing_backend_dependency():
"""Test that the correct error is thrown when a user does not have a dependency installed"""