summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2022-09-29 14:05:51 -0500
committerJordan Cook <jordan.cook.git@proton.me>2022-09-29 14:05:51 -0500
commitba8fe3770c38c60b94b055fd546ec009b809f43f (patch)
tree98c34460ff23184790a10d2441d40aaf31242341
parent662ce95795574fcc5c4a36ac7d5eb0fd409c9310 (diff)
downloadrequests-cache-ba8fe3770c38c60b94b055fd546ec009b809f43f.tar.gz
Add delete() function for patcher
-rw-r--r--docs/user_guide/expiration.md3
-rw-r--r--requests_cache/patcher.py18
-rw-r--r--tests/unit/test_patcher.py16
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()