summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook.git@proton.me>2023-05-08 11:23:22 -0500
committerJordan Cook <jordan.cook.git@proton.me>2023-05-08 11:32:25 -0500
commit7a0aa6de6bb9d912554bac6cafef2d2ff7c757b6 (patch)
tree70b96898114b73698dc3cdc4639f215acd07fce1
parent83f7bc77e4daeab70e19e29a1ed1ba4bcabff9e1 (diff)
downloadrequests-cache-7a0aa6de6bb9d912554bac6cafef2d2ff7c757b6.tar.gz
Enable bugbear extension and fix warnings
-rw-r--r--pyproject.toml2
-rw-r--r--requests_cache/backends/base.py8
-rw-r--r--requests_cache/backends/filesystem.py2
-rw-r--r--requests_cache/backends/gridfs.py2
-rw-r--r--requests_cache/backends/sqlite.py2
-rw-r--r--requests_cache/models/raw_response.py2
-rw-r--r--requests_cache/patcher.py1
-rw-r--r--tests/conftest.py8
-rw-r--r--tests/integration/base_cache_test.py16
-rw-r--r--tests/integration/base_storage_test.py2
-rw-r--r--tests/integration/test_sqlite.py8
-rw-r--r--tests/integration/test_upgrade.py2
-rw-r--r--tests/unit/models/test_response.py6
-rw-r--r--tests/unit/test_patcher.py4
-rw-r--r--tests/unit/test_session.py8
15 files changed, 38 insertions, 35 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 87cc72b..4c6520a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -161,5 +161,5 @@ ignore_missing_imports = true
[tool.ruff]
format = 'grouped'
line-length = 120
-select = ['C4','C90', 'E', 'F']
+select = ['B', 'C4','C90', 'E', 'F']
ignore = ['B023']
diff --git a/requests_cache/backends/base.py b/requests_cache/backends/base.py
index d64abc1..39df413 100644
--- a/requests_cache/backends/base.py
+++ b/requests_cache/backends/base.py
@@ -275,6 +275,7 @@ class BaseCache:
warn(
'BaseCache.delete_url() is deprecated; please use .delete(urls=...) instead',
DeprecationWarning,
+ stacklevel=2,
)
self.delete(requests=[Request(method, url, **kwargs)])
@@ -282,6 +283,7 @@ class BaseCache:
warn(
'BaseCache.delete_urls() is deprecated; please use .delete(urls=...) instead',
DeprecationWarning,
+ stacklevel=2,
)
self.delete(requests=[Request(method, url, **kwargs) for url in urls])
@@ -289,6 +291,7 @@ class BaseCache:
warn(
'BaseCache.has_key() is deprecated; please use .contains() instead',
DeprecationWarning,
+ stacklevel=2,
)
return self.contains(key)
@@ -296,6 +299,7 @@ class BaseCache:
warn(
'BaseCache.has_url() is deprecated; please use .contains(url=...) instead',
DeprecationWarning,
+ stacklevel=2,
)
return self.contains(request=Request(method, url, **kwargs))
@@ -304,6 +308,7 @@ class BaseCache:
'BaseCache.keys() is deprecated; '
'please use .filter() or BaseCache.responses.keys() instead',
DeprecationWarning,
+ stacklevel=2,
)
yield from self.redirects.keys()
if not check_expiry:
@@ -317,6 +322,7 @@ class BaseCache:
'BaseCache.response_count() is deprecated; '
'please use .filter() or len(BaseCache.responses) instead',
DeprecationWarning,
+ stacklevel=2,
)
return len(list(self.filter(expired=not check_expiry)))
@@ -325,6 +331,7 @@ class BaseCache:
'BaseCache.remove_expired_responses() is deprecated; '
'please use .delete(expired=True) instead',
DeprecationWarning,
+ stacklevel=2,
)
if expire_after:
self.reset_expiration(expire_after)
@@ -335,6 +342,7 @@ class BaseCache:
'BaseCache.values() is deprecated; '
'please use .filter() or BaseCache.responses.values() instead',
DeprecationWarning,
+ stacklevel=2,
)
yield from self.filter(expired=not check_expiry)
diff --git a/requests_cache/backends/filesystem.py b/requests_cache/backends/filesystem.py
index ccda6c8..9641668 100644
--- a/requests_cache/backends/filesystem.py
+++ b/requests_cache/backends/filesystem.py
@@ -94,7 +94,7 @@ class FileDict(BaseStorage):
yield
except (EOFError, IOError, OSError, PickleError) as e:
if not ignore_errors:
- raise KeyError(e)
+ raise KeyError from e
def _path(self, key) -> Path:
return self.cache_dir / f'{key}{self.extension}'
diff --git a/requests_cache/backends/gridfs.py b/requests_cache/backends/gridfs.py
index aadb7e5..ee2fd23 100644
--- a/requests_cache/backends/gridfs.py
+++ b/requests_cache/backends/gridfs.py
@@ -87,7 +87,7 @@ class GridFSDict(BaseStorage):
return self.deserialize(key, result.read())
except CorruptGridFile as e:
logger.warning(e, exc_info=True)
- raise KeyError
+ raise KeyError from e
def __setitem__(self, key, item):
value = self.serialize(item)
diff --git a/requests_cache/backends/sqlite.py b/requests_cache/backends/sqlite.py
index 72b62da..2840e63 100644
--- a/requests_cache/backends/sqlite.py
+++ b/requests_cache/backends/sqlite.py
@@ -426,7 +426,7 @@ def get_cache_path(db_path: AnyPath, use_cache_dir: bool = False, use_temp: bool
raise FileExistsError(
f'Parent path exists and is not a directory: {db_path.parent}.'
'Please either delete the file or choose a different path.'
- )
+ ) from None
return db_path
diff --git a/requests_cache/models/raw_response.py b/requests_cache/models/raw_response.py
index f95afab..ea51eb5 100644
--- a/requests_cache/models/raw_response.py
+++ b/requests_cache/models/raw_response.py
@@ -57,7 +57,7 @@ class CachedHTTPResponse(RichMixin, HTTPResponse):
body = raw.read(decode_content=False)
kwargs['body'] = body
raw._fp = BytesIO(body)
- response.content # This property reads, decodes, and stores response content
+ _ = response.content # This property reads, decodes, and stores response content
# After reading, reset file pointer on original raw response
raw._fp = BytesIO(body)
diff --git a/requests_cache/patcher.py b/requests_cache/patcher.py
index 406ee45..aa5af76 100644
--- a/requests_cache/patcher.py
+++ b/requests_cache/patcher.py
@@ -121,6 +121,7 @@ def remove_expired_responses():
warn(
'remove_expired_responses() is deprecated; please use delete() instead',
DeprecationWarning,
+ stacklevel=2,
)
delete(expired=True)
diff --git a/tests/conftest.py b/tests/conftest.py
index 953ddb3..e4ca8a6 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -239,14 +239,14 @@ def get_mock_response(
method='GET',
url='https://img.site.com/base/img.jpg',
status_code=200,
- headers={},
- request_headers={},
+ headers=None,
+ request_headers=None,
):
return MagicMock(
url=url,
status_code=status_code,
- headers=headers,
- request=Request(method=method, url=url, headers=request_headers),
+ headers=headers or {},
+ request=Request(method=method, url=url, headers=request_headers or {}),
)
diff --git a/tests/integration/base_cache_test.py b/tests/integration/base_cache_test.py
index d37bfa7..7801570 100644
--- a/tests/integration/base_cache_test.py
+++ b/tests/integration/base_cache_test.py
@@ -252,15 +252,9 @@ class BaseCacheTest:
assert response.from_cache is True
assert response.is_expired is False
- # Make sure an immediate subsequent request will be served from the cache for another max-age==60 secondss
- try:
- with patch.object(Session, 'send', side_effect=AssertionError):
- response = session.get(url, params=first_response_headers)
- except AssertionError:
- assert False, (
- "Session tried to perform re-validation although cached response should have been "
- "refreshened."
- )
+ # Make sure an immediate subsequent request will be served from the cache for another 60 seconds
+ with patch.object(Session, 'send', side_effect=AssertionError):
+ response = session.get(url, params=first_response_headers)
assert response.from_cache is True
assert response.is_expired is False
@@ -283,7 +277,7 @@ class BaseCacheTest:
def test_multipart_upload(self):
session = self.init_session()
session.post(httpbin('post'), files={'file1': BytesIO(b'10' * 1024)})
- for i in range(5):
+ for _ in range(5):
assert session.post(httpbin('post'), files={'file1': BytesIO(b'10' * 1024)}).from_cache
def test_delete__expired(self):
@@ -304,7 +298,7 @@ class BaseCacheTest:
assert len(session.cache.responses.keys()) == 2
assert len(session.cache.redirects.keys()) == 3
assert not session.cache.contains(url=httpbin('redirect/1'))
- assert not any([session.cache.contains(url=httpbin(f)) for f in HTTPBIN_FORMATS])
+ assert not any(session.cache.contains(url=httpbin(f)) for f in HTTPBIN_FORMATS)
@pytest.mark.parametrize('method', HTTPBIN_METHODS)
def test_filter_request_headers(self, method):
diff --git a/tests/integration/base_storage_test.py b/tests/integration/base_storage_test.py
index 4870c02..a7ff436 100644
--- a/tests/integration/base_storage_test.py
+++ b/tests/integration/base_storage_test.py
@@ -40,7 +40,7 @@ class BaseStorageTest:
for i in range(self.num_instances):
cache = caches[i]
- cache[f'key_{i}'] == f'value_{i}'
+ assert cache[f'key_{i}'] == f'value_{i}'
assert len(cache) == 2
assert f'key_{i}' in cache and f'key_{i+1}' in cache
diff --git a/tests/integration/test_sqlite.py b/tests/integration/test_sqlite.py
index 04e4b61..173cc60 100644
--- a/tests/integration/test_sqlite.py
+++ b/tests/integration/test_sqlite.py
@@ -163,7 +163,7 @@ class TestSQLiteDict(BaseStorageTest):
assert len(items) == limit or 100
prev_item = None
- for i, item in enumerate(items):
+ for item in items:
assert prev_item is None or len(prev_item) > len(item)
@skip_pypy
@@ -201,7 +201,7 @@ class TestSQLiteDict(BaseStorageTest):
assert len(items) == limit or 100
prev_item = None
- for i, item in enumerate(items):
+ for item in items:
assert prev_item is None or prev_item.expires < item.expires
@skip_pypy
@@ -223,7 +223,7 @@ class TestSQLiteDict(BaseStorageTest):
assert len(items) == 50
prev_item = None
- for i, item in enumerate(items):
+ for item in items:
assert prev_item is None or prev_item.expires < item.expires
assert item.status_code % 2 == 0
@@ -345,7 +345,7 @@ class TestSQLiteCache(BaseCacheTest):
assert len(items) == 100
prev_item = None
- for i, item in enumerate(items):
+ for item in items:
assert prev_item is None or prev_item.expires < item.expires
assert item.cache_key
assert not item.is_expired
diff --git a/tests/integration/test_upgrade.py b/tests/integration/test_upgrade.py
index 162024e..6774ec4 100644
--- a/tests/integration/test_upgrade.py
+++ b/tests/integration/test_upgrade.py
@@ -19,5 +19,5 @@ def test_version_upgrade(db_path, tempfile_path):
session = CachedSession(tempfile_path)
for response_format in HTTPBIN_FORMATS:
- session.get(httpbin(response_format)).from_cache
+ session.get(httpbin(response_format))
assert session.get(httpbin(response_format)).from_cache is True
diff --git a/tests/unit/models/test_response.py b/tests/unit/models/test_response.py
index d7f40b9..71517ce 100644
--- a/tests/unit/models/test_response.py
+++ b/tests/unit/models/test_response.py
@@ -29,7 +29,7 @@ def test_history(mock_session):
original_response.history = [mock_session.get(MOCKED_URL)] * 3
response = CachedResponse.from_response(original_response)
assert len(response.history) == 3
- assert all([isinstance(r, CachedResponse) for r in response.history])
+ assert all(isinstance(r, CachedResponse) for r in response.history)
@pytest.mark.parametrize(
@@ -118,7 +118,7 @@ def test_str(mock_session):
response = CachedResponse.from_response(mock_session.get(MOCKED_URL))
response._content = b'1010'
expected_values = ['GET', MOCKED_URL, 200, '4 bytes', 'created', 'expires', 'fresh']
- assert all([str(v) in str(response) for v in expected_values])
+ assert all(str(v) in str(response) for v in expected_values)
def test_repr(mock_session):
@@ -127,7 +127,7 @@ def test_repr(mock_session):
expected_values = ['GET', MOCKED_URL, 200, 'ISO-8859-1', response.headers]
print(repr(response))
assert repr(response).startswith('CachedResponse(') and repr(response).endswith(')')
- assert all([str(v) in repr(response) for v in expected_values])
+ assert all(str(v) in repr(response) for v in expected_values)
@pytest.mark.parametrize(
diff --git a/tests/unit/test_patcher.py b/tests/unit/test_patcher.py
index 8977271..422f9a0 100644
--- a/tests/unit/test_patcher.py
+++ b/tests/unit/test_patcher.py
@@ -57,7 +57,7 @@ def test_clear__not_installed(mock_clear):
@patch.object(CachedSession, 'request')
def test_disabled(cached_request, original_request, installed_session):
with requests_cache.disabled():
- for i in range(3):
+ for _ in range(3):
requests.get('some_url')
assert cached_request.call_count == 0
assert original_request.call_count == 3
@@ -67,7 +67,7 @@ def test_disabled(cached_request, original_request, installed_session):
@patch.object(CachedSession, 'request')
def test_enabled(cached_request, original_request, tempfile_path):
with requests_cache.enabled(tempfile_path):
- for i in range(3):
+ for _ in range(3):
requests.get('some_url')
assert cached_request.call_count == 3
assert original_request.call_count == 0
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index 0c5b736..895702b 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -439,7 +439,7 @@ def test_stale_if_error__max_stale(mock_session):
mock_session.settings.stale_if_error = timedelta(seconds=15)
mock_session.settings.expire_after = datetime.utcnow() - timedelta(seconds=10)
mock_session.settings.allowable_codes = (200,)
- mock_session.get(MOCKED_URL_200_404).from_cache
+ mock_session.get(MOCKED_URL_200_404)
response = mock_session.get(MOCKED_URL_200_404)
assert response.from_cache is True
@@ -459,7 +459,7 @@ def test_old_data_on_error():
def test_cache_disabled(mock_session):
mock_session.get(MOCKED_URL)
with mock_session.cache_disabled():
- for i in range(2):
+ for _ in range(2):
assert mock_session.get(MOCKED_URL).from_cache is False
assert mock_session.get(MOCKED_URL).from_cache is True
@@ -469,7 +469,7 @@ def test_cache_disabled__nested(mock_session):
with mock_session.cache_disabled():
mock_session.get(MOCKED_URL)
with mock_session.cache_disabled():
- for i in range(2):
+ for _ in range(2):
assert mock_session.get(MOCKED_URL).from_cache is False
assert mock_session.get(MOCKED_URL).from_cache is True
@@ -616,7 +616,7 @@ def test_hooks(mock_session):
assert r.from_cache is True
return r
- for i in range(5):
+ for _ in range(5):
mock_session.get(MOCKED_URL, hooks={hook: hook_func})
assert state[hook] == 5