summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_cache_keys.py4
-rw-r--r--tests/unit/test_session.py26
2 files changed, 24 insertions, 6 deletions
diff --git a/tests/unit/test_cache_keys.py b/tests/unit/test_cache_keys.py
index 2f4b2dd..fffdc3b 100644
--- a/tests/unit/test_cache_keys.py
+++ b/tests/unit/test_cache_keys.py
@@ -15,11 +15,11 @@ def test_remove_ignored_body_params__binary():
request.url = 'https://img.site.com/base/img.jpg'
request.body = b'some bytes'
request.headers = {'Content-Type': 'application/octet-stream'}
- assert remove_ignored_body_params(request, ignored_params=None) == request.body
+ assert remove_ignored_body_params(request, ignored_parameters=None) == request.body
def test_remove_ignored_headers__empty():
request = PreparedRequest()
request.url = 'https://img.site.com/base/img.jpg'
request.headers = {'foo': 'bar'}
- assert remove_ignored_headers(request, ignored_params=None) == request.headers
+ assert remove_ignored_headers(request.headers, ignored_parameters=None) == request.headers
diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py
index d5cc395..e18bc96 100644
--- a/tests/unit/test_session.py
+++ b/tests/unit/test_session.py
@@ -85,14 +85,15 @@ def test_all_methods(field, method, mock_session):
@pytest.mark.parametrize('method', ALL_METHODS)
@pytest.mark.parametrize('field', ['params', 'data', 'json'])
-def test_all_methods__ignore_parameters(field, method, mock_session):
+def test_all_methods__ignored_parameters__not_matched(field, method, mock_session):
"""Test all relevant combinations of methods and data fields. Requests with different request
params, data, or json should not be cached under different keys based on an ignored param.
"""
mock_session.cache.ignored_parameters = ['ignored']
- params_1 = {'ignored': 1, 'not ignored': 1}
- params_2 = {'ignored': 2, 'not ignored': 1}
- params_3 = {'ignored': 2, 'not ignored': 2}
+ mock_session.cache.match_headers = True
+ params_1 = {'ignored': 'value_1', 'not_ignored': 'value_1'}
+ params_2 = {'ignored': 'value_2', 'not_ignored': 'value_1'}
+ params_3 = {'ignored': 'value_2', 'not_ignored': 'value_2'}
assert mock_session.request(method, MOCKED_URL, **{field: params_1}).from_cache is False
assert mock_session.request(method, MOCKED_URL, **{field: params_1}).from_cache is True
@@ -101,6 +102,23 @@ def test_all_methods__ignore_parameters(field, method, mock_session):
assert mock_session.request(method, MOCKED_URL, **{field: params_3}).from_cache is False
+@pytest.mark.parametrize('method', ALL_METHODS)
+@pytest.mark.parametrize('field', ['params', 'headers', 'data', 'json'])
+def test_all_methods__ignored_parameters__redacted(field, method, mock_session):
+ """Test all relevant combinations of methods and data fields. Requests with ignored params
+ should have those values redacted from the cached response.
+ """
+ mock_session.cache.ignored_parameters = ['access_token']
+ params_1 = {'access_token': 'asdf', 'not_ignored': 'value_1'}
+
+ mock_session.request(method, MOCKED_URL, **{field: params_1})
+ cached_response = mock_session.request(method, MOCKED_URL, **{field: params_1})
+ assert 'access_token' not in cached_response.url
+ assert 'access_token' not in cached_response.request.url
+ assert 'access_token' not in cached_response.request.headers
+ assert 'access_token' not in cached_response.request.body.decode('utf-8')
+
+
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