diff options
author | Jordan Cook <jordan.cook.git@proton.me> | 2022-09-30 18:15:40 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook.git@proton.me> | 2022-09-30 18:27:44 -0500 |
commit | c1e313b89cbe1cffaf7d6a5fc9c3bc97c145516b (patch) | |
tree | 556479d6412c5ba5190017118154e9057c04562b /tests | |
parent | e41616481d0503630f8ce13fc40bb14d3d1f0390 (diff) | |
download | requests-cache-c1e313b89cbe1cffaf7d6a5fc9c3bc97c145516b.tar.gz |
Silence DeprecationWarnings during tests for deprecated methods
Diffstat (limited to 'tests')
-rw-r--r-- | tests/conftest.py | 10 | ||||
-rw-r--r-- | tests/unit/test_base_cache.py | 58 | ||||
-rw-r--r-- | tests/unit/test_patcher.py | 5 | ||||
-rw-r--r-- | tests/unit/test_session.py | 3 |
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) |