diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2022-09-29 14:05:51 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2022-09-29 14:05:51 -0500 |
commit | ba8fe3770c38c60b94b055fd546ec009b809f43f (patch) | |
tree | 98c34460ff23184790a10d2441d40aaf31242341 | |
parent | 662ce95795574fcc5c4a36ac7d5eb0fd409c9310 (diff) | |
download | requests-cache-ba8fe3770c38c60b94b055fd546ec009b809f43f.tar.gz |
Add delete() function for patcher
-rw-r--r-- | docs/user_guide/expiration.md | 3 | ||||
-rw-r--r-- | requests_cache/patcher.py | 18 | ||||
-rw-r--r-- | tests/unit/test_patcher.py | 16 |
3 files changed, 29 insertions, 8 deletions
diff --git a/docs/user_guide/expiration.md b/docs/user_guide/expiration.md index 5ceefb5..ef1d9e1 100644 --- a/docs/user_guide/expiration.md +++ b/docs/user_guide/expiration.md @@ -165,7 +165,8 @@ To delete expired responses, use {py:meth}`.BaseCache.delete`: Or, if you have patched ``requests`` using {py:func}`.install_cache`: ```python ->>> requests_cache.remove_expired_responses() +>>> import requests_cache +>>> requests_cache.delete(expired=True) ``` You can also remove responses older than a certain time: diff --git a/requests_cache/patcher.py b/requests_cache/patcher.py index 30ba908..137e928 100644 --- a/requests_cache/patcher.py +++ b/requests_cache/patcher.py @@ -10,6 +10,7 @@ from contextlib import contextmanager from logging import getLogger from typing import Optional, Type +from warnings import warn import requests @@ -106,11 +107,22 @@ def clear(): get_cache().clear() -def remove_expired_responses(): - """Remove expired and invalid responses from the cache""" +def delete(*args, **kwargs): + """Remove responses from the cache according one or more conditions. + See :py:meth:`.BaseCache.delete for usage details. + """ session = requests.Session() if isinstance(session, CachedSession): - session.cache.delete(expired=True) + session.cache.delete(*args, **kwargs) + + +def remove_expired_responses(): + """Remove expired responses from the cache""" + warn( + 'remove_expired_responses() is deprecated; please use delete() instead', + DeprecationWarning, + ) + delete(expired=True) def _patch_session_factory(session_factory: Type[OriginalSession] = CachedSession): diff --git a/tests/unit/test_patcher.py b/tests/unit/test_patcher.py index 5a99d6a..ceb2a4c 100644 --- a/tests/unit/test_patcher.py +++ b/tests/unit/test_patcher.py @@ -82,14 +82,22 @@ def test_is_installed(): @patch.object(BaseCache, 'delete') -def test_remove_expired_responses(mock_delete): +def test_delete__expired_responses(mock_delete): requests_cache.install_cache(backend='memory', expire_after=360) - requests_cache.remove_expired_responses() + requests_cache.delete(expired=True) assert mock_delete.called is True requests_cache.uninstall_cache() @patch.object(BaseCache, 'delete') -def test_remove_expired_responses__cache_not_installed(mock_delete): - requests_cache.remove_expired_responses() +def test_delete__cache_not_installed(mock_delete): + requests_cache.delete(expired=True) assert mock_delete.called is False + + +@patch.object(BaseCache, 'delete') +def test_remove_expired_responses(mock_delete): + requests_cache.install_cache(backend='memory', expire_after=360) + requests_cache.remove_expired_responses() + assert mock_delete.called is True + requests_cache.uninstall_cache() |