Skip to content

Commit f58d2d4

Browse files
authored
fix: use SeparateBodyFileCache for file caching (#10816)
1 parent f560248 commit f58d2d4

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

src/poetry/utils/authenticator.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import requests.exceptions
1818

1919
from cachecontrol import CacheControlAdapter
20-
from cachecontrol.caches import FileCache
20+
from cachecontrol.caches import SeparateBodyFileCache
2121
from requests_toolbelt import user_agent
2222

2323
from poetry.__version__ import __version__
@@ -115,15 +115,20 @@ def __init__(
115115
dict[str, AuthenticatorRepositoryConfig] | None
116116
) = None
117117
self._password_manager = PasswordManager(self._config)
118+
119+
# Poetry < 2.4: FileCache -> directory "_http"
120+
# Poetry >= 2.4: SeparateBodyCache -> directory "_http_"
121+
# See https://github.com/python-poetry/poetry/pull/10816 for details.
118122
self._cache_control = (
119-
FileCache(
123+
SeparateBodyFileCache(
120124
self._config.repository_cache_directory
121125
/ (cache_id or "_default_cache")
122-
/ "_http"
126+
/ "_http_"
123127
)
124128
if not disable_cache
125129
else None
126130
)
131+
127132
self.get_repository_config_for_url = functools.lru_cache(maxsize=None)(
128133
self._get_repository_config_for_url
129134
)

tests/repositories/test_pypi_repository.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,9 @@ def test_invalid_versions_ignored(pypi_repository: PyPiRepository) -> None:
324324
def test_get_should_invalid_cache_on_too_many_redirects_error(
325325
mocker: MockerFixture,
326326
) -> None:
327-
delete_cache = mocker.patch("cachecontrol.caches.file_cache.FileCache.delete")
327+
delete_cache = mocker.patch(
328+
"cachecontrol.caches.file_cache.SeparateBodyFileCache.delete"
329+
)
328330

329331
response = Response()
330332
response.status_code = 200

0 commit comments

Comments
 (0)