summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2022-09-30 18:15:40 -0500
committerJordan Cook <jordan.cook.git@proton.me>2022-09-30 18:27:44 -0500
commitc1e313b89cbe1cffaf7d6a5fc9c3bc97c145516b (patch)
tree556479d6412c5ba5190017118154e9057c04562b /tests
parente41616481d0503630f8ce13fc40bb14d3d1f0390 (diff)
downloadrequests-cache-c1e313b89cbe1cffaf7d6a5fc9c3bc97c145516b.tar.gz
Silence DeprecationWarnings during tests for deprecated methods
Diffstat (limited to 'tests')
-rw-r--r--tests/conftest.py10
-rw-r--r--tests/unit/test_base_cache.py58
-rw-r--r--tests/unit/test_patcher.py5
-rw-r--r--tests/unit/test_session.py3
4 files changed, 50 insertions, 26 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index e09d7f1..84710ae 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -9,6 +9,8 @@ Note: The protocol ``http(s)+mock://`` helps :py:class:`requests_mock.Adapter` p
https://requests-mock.readthedocs.io/en/latest/adapter.html
"""
import os
+import warnings
+from contextlib import contextmanager
from datetime import datetime, timedelta
from functools import wraps
from importlib import import_module
@@ -278,5 +280,13 @@ def skip_missing_deps(module_name: str) -> pytest.Mark:
)
+@contextmanager
+def ignore_deprecation():
+ """Temporarily ilence deprecation warnings"""
+ with warnings.catch_warnings():
+ warnings.simplefilter('ignore', category=DeprecationWarning)
+ yield
+
+
# Some tests must disable url normalization to retain the custom `http+mock://` protocol
patch_normalize_url = patch('requests_cache.cache_keys.normalize_url', side_effect=lambda x, y: x)
diff --git a/tests/unit/test_base_cache.py b/tests/unit/test_base_cache.py
index 033a673..9ddbb4d 100644
--- a/tests/unit/test_base_cache.py
+++ b/tests/unit/test_base_cache.py
@@ -17,6 +17,7 @@ from tests.conftest import (
MOCKED_URL_HTTPS,
MOCKED_URL_JSON,
MOCKED_URL_REDIRECT,
+ ignore_deprecation,
patch_normalize_url,
)
@@ -226,8 +227,8 @@ def test_clear(mock_session):
mock_session.get(MOCKED_URL)
mock_session.get(MOCKED_URL_REDIRECT)
mock_session.cache.clear()
- assert not mock_session.cache.has_url(MOCKED_URL)
- assert not mock_session.cache.has_url(MOCKED_URL_REDIRECT)
+ assert not mock_session.cache.contains(request=Request('GET', MOCKED_URL))
+ assert not mock_session.cache.contains(request=Request('GET', MOCKED_URL_REDIRECT))
def test_save_response__manual(mock_session):
@@ -273,51 +274,59 @@ def test_urls__error(mock_session):
def test_has_url(mock_session):
mock_session.get(MOCKED_URL, params={'foo': 'bar'})
- assert mock_session.cache.has_url(MOCKED_URL, params={'foo': 'bar'})
- assert not mock_session.cache.has_url(MOCKED_URL)
+ with ignore_deprecation():
+ assert mock_session.cache.has_url(MOCKED_URL, params={'foo': 'bar'})
+ assert not mock_session.cache.has_url(MOCKED_URL)
def test_delete_url(mock_session):
mock_session.get(MOCKED_URL)
- mock_session.cache.delete_url(MOCKED_URL)
- assert not mock_session.cache.has_url(MOCKED_URL)
+ with ignore_deprecation():
+ mock_session.cache.delete_url(MOCKED_URL)
+ assert not mock_session.cache.has_url(MOCKED_URL)
def test_delete_url__request_args(mock_session):
mock_session.get(MOCKED_URL, params={'foo': 'bar'})
- mock_session.cache.delete_url(MOCKED_URL, params={'foo': 'bar'})
- assert not mock_session.cache.has_url(MOCKED_URL, params={'foo': 'bar'})
+ with ignore_deprecation():
+ mock_session.cache.delete_url(MOCKED_URL, params={'foo': 'bar'})
+ assert not mock_session.cache.has_url(MOCKED_URL, params={'foo': 'bar'})
def test_delete_url__nonexistent_response(mock_session):
"""Deleting a response that was either already deleted (or never added) should fail silently"""
- mock_session.cache.delete_url(MOCKED_URL)
+ with ignore_deprecation():
+ mock_session.cache.delete_url(MOCKED_URL)
- mock_session.get(MOCKED_URL)
- mock_session.cache.delete_url(MOCKED_URL)
- assert not mock_session.cache.has_url(MOCKED_URL)
- mock_session.cache.delete_url(MOCKED_URL) # Should fail silently
+ mock_session.get(MOCKED_URL)
+ mock_session.cache.delete_url(MOCKED_URL)
+
+ assert not mock_session.cache.has_url(MOCKED_URL)
+ mock_session.cache.delete_url(MOCKED_URL) # Should fail silently
def test_delete_urls(mock_session):
mock_session.get(MOCKED_URL)
- mock_session.cache.delete_urls([MOCKED_URL])
- assert not mock_session.cache.has_url(MOCKED_URL)
+ with ignore_deprecation():
+ mock_session.cache.delete_urls([MOCKED_URL])
+ assert not mock_session.cache.has_url(MOCKED_URL)
def test_keys(mock_session):
for url in [MOCKED_URL, MOCKED_URL_JSON, MOCKED_URL_REDIRECT]:
mock_session.get(url)
- all_keys = set(mock_session.cache.responses.keys()) | set(mock_session.cache.redirects.keys())
- assert set(mock_session.cache.keys()) == all_keys
+ with ignore_deprecation():
+ response_keys = set(mock_session.cache.responses.keys())
+ redirect_keys = set(mock_session.cache.redirects.keys())
+ assert set(mock_session.cache.keys()) == response_keys | redirect_keys
def test_remove_expired_responses(mock_session):
"""Test for backwards-compatibility"""
- with patch.object(mock_session.cache, 'delete') as mock_delete, patch.object(
- mock_session.cache, 'reset_expiration'
- ) as mock_reset:
+ with ignore_deprecation(), patch.object(
+ mock_session.cache, 'delete'
+ ) as mock_delete, patch.object(mock_session.cache, 'reset_expiration') as mock_reset:
mock_session.cache.remove_expired_responses(expire_after=1)
mock_delete.assert_called_once_with(expired=True, invalid=True)
mock_reset.assert_called_once_with(1)
@@ -335,14 +344,17 @@ def test_response_count(check_expiry, expected_count, mock_session):
mock_session.cache.responses['expired_response'] = CachedResponse(expires=YESTERDAY)
mock_session.cache.responses['invalid_response'] = InvalidResponse()
- assert mock_session.cache.response_count(check_expiry=check_expiry) == expected_count
+ with ignore_deprecation():
+ response_count = mock_session.cache.response_count(check_expiry=check_expiry)
+ assert response_count == expected_count
def test_values(mock_session):
for url in [MOCKED_URL, MOCKED_URL_JSON, MOCKED_URL_HTTPS]:
mock_session.get(url)
- responses = list(mock_session.cache.values())
+ with ignore_deprecation():
+ responses = list(mock_session.cache.values())
assert len(responses) == 3
assert all([isinstance(response, CachedResponse) for response in responses])
@@ -354,7 +366,7 @@ def test_values__with_invalid_responses(check_expiry, expected_count, mock_sessi
responses[1] = AttributeError
responses[2] = CachedResponse(expires=YESTERDAY, url='test')
- with patch.object(SQLiteDict, '__getitem__', side_effect=responses):
+ with ignore_deprecation(), patch.object(SQLiteDict, '__getitem__', side_effect=responses):
values = mock_session.cache.values(check_expiry=check_expiry)
assert len(list(values)) == expected_count
diff --git a/tests/unit/test_patcher.py b/tests/unit/test_patcher.py
index ceb2a4c..8977271 100644
--- a/tests/unit/test_patcher.py
+++ b/tests/unit/test_patcher.py
@@ -6,7 +6,7 @@ from requests.sessions import Session as OriginalSession
import requests_cache
from requests_cache import CachedSession
from requests_cache.backends import BaseCache, SQLiteCache
-from tests.conftest import CACHE_NAME
+from tests.conftest import CACHE_NAME, ignore_deprecation
def test_install_uninstall():
@@ -98,6 +98,7 @@ def test_delete__cache_not_installed(mock_delete):
@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()
+ with ignore_deprecation():
+ requests_cache.remove_expired_responses()
assert mock_delete.called is True
requests_cache.uninstall_cache()
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index dda449a..60f2d42 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -29,6 +29,7 @@ from tests.conftest import (
MOCKED_URL_REDIRECT,
MOCKED_URL_REDIRECT_TARGET,
MOCKED_URL_VARY,
+ ignore_deprecation,
patch_normalize_url,
)
@@ -895,6 +896,6 @@ def test_request_force_refresh__prepared_request(mock_session):
def test_remove_expired_responses(mock_session):
- with patch.object(mock_session.cache, 'delete') as mock_delete:
+ with ignore_deprecation(), patch.object(mock_session.cache, 'delete') as mock_delete:
mock_session.remove_expired_responses()
mock_delete.assert_called_once_with(expired=True, invalid=True)