diff options
Diffstat (limited to 'tests/unit')
| -rw-r--r-- | tests/unit/test_cache_keys.py | 4 | ||||
| -rw-r--r-- | tests/unit/test_session.py | 26 |
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 |
