summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Cook <jordan.cook@pioneer.com>2022-02-13 10:58:45 -0600
committerJordan Cook <jordan.cook@pioneer.com>2022-02-13 11:04:53 -0600
commit941c1012eb937a4b60bb16ee76e97cbe9eb48104 (patch)
tree23b7380e57c57b344cef1a9f7aad1f52f670bdfa
parentaafc42f7198d2517efda03d56ae3eeeb7ff85201 (diff)
downloadrequests-cache-941c1012eb937a4b60bb16ee76e97cbe9eb48104.tar.gz
Fix support for `params`, `data`, and `json` as positional arguments to `CachedSession.request()`
-rw-r--r--requests_cache/session.py8
-rw-r--r--tests/unit/test_session.py6
2 files changed, 10 insertions, 4 deletions
diff --git a/requests_cache/session.py b/requests_cache/session.py
index 26c06e5..79f10cc 100644
--- a/requests_cache/session.py
+++ b/requests_cache/session.py
@@ -77,7 +77,7 @@ class CacheMixin(MIXIN_BASE):
self,
method: str,
url: str,
- headers: Dict = None,
+ *args,
expire_after: ExpirationTime = None,
**kwargs,
) -> AnyResponse:
@@ -108,11 +108,11 @@ class CacheMixin(MIXIN_BASE):
"""
# If present, set per-request expiration as a request header, to be handled in send()
if expire_after is not None:
- headers = headers or {}
- headers['Cache-Control'] = f'max-age={get_expiration_seconds(expire_after)}'
+ kwargs.setdefault('headers', {})
+ kwargs['headers']['Cache-Control'] = f'max-age={get_expiration_seconds(expire_after)}'
with patch_form_boundary(**kwargs):
- return super().request(method, url, headers=headers, **kwargs)
+ return super().request(method, url, *args, **kwargs)
def send(
self, request: PreparedRequest, expire_after: ExpirationTime = None, **kwargs
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index 41883c0..9fc5df0 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -119,6 +119,12 @@ def test_all_methods__ignored_parameters__redacted(field, method, mock_session):
assert 'access_token' not in cached_response.request.body.decode('utf-8')
+def test_params_positional_arg(mock_session):
+ mock_session.request('GET', MOCKED_URL, {'param_1': 1})
+ response = mock_session.request('GET', MOCKED_URL, {'param_1': 1})
+ assert 'param_1=1' in response.url
+
+
def test_https(mock_session):
assert mock_session.get(MOCKED_URL_HTTPS, verify=True).from_cache is False
assert mock_session.get(MOCKED_URL_HTTPS, verify=True).from_cache is True