diff options
Diffstat (limited to 'tests/integration/base_cache_test.py')
-rw-r--r-- | tests/integration/base_cache_test.py | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/tests/integration/base_cache_test.py b/tests/integration/base_cache_test.py index 0b93a8c..8282452 100644 --- a/tests/integration/base_cache_test.py +++ b/tests/integration/base_cache_test.py @@ -17,12 +17,6 @@ from requests import PreparedRequest, Session from requests_cache import ALL_METHODS, CachedResponse, CachedSession from requests_cache.backends.base import BaseCache -from requests_cache.serializers import ( - SERIALIZERS, - SerializerPipeline, - Stage, - safe_pickle_serializer, -) from tests.conftest import ( CACHE_NAME, ETAG, @@ -41,20 +35,9 @@ from tests.conftest import ( logger = getLogger(__name__) -# Handle optional dependencies if they're not installed, -# so any skipped tests will explicitly be shown in pytest output -TEST_SERIALIZERS = SERIALIZERS.copy() -try: - TEST_SERIALIZERS['safe_pickle'] = safe_pickle_serializer(secret_key='hunter2') -except ImportError: - TEST_SERIALIZERS['safe_pickle'] = 'safe_pickle_placeholder' VALIDATOR_HEADERS = [{'ETag': ETAG}, {'Last-Modified': LAST_MODIFIED}] -def _valid_serializer(serializer) -> bool: - return isinstance(serializer, (SerializerPipeline, Stage)) - - class BaseCacheTest: """Base class for testing cache backend classes""" @@ -76,29 +59,23 @@ class BaseCacheTest: session = cls().init_session(clear=True) session.close() - @pytest.mark.parametrize('serializer', TEST_SERIALIZERS.values()) @pytest.mark.parametrize('method', HTTPBIN_METHODS) @pytest.mark.parametrize('field', ['params', 'data', 'json']) - def test_all_methods(self, field, method, serializer): - """Test all relevant combinations of (methods X data fields X serializers). + def test_all_methods(self, field, method, serializer=None): + """Test all relevant combinations of methods X data fields. Requests with different request params, data, or json should be cached under different keys. - """ - if not _valid_serializer(serializer): - pytest.skip(f'Dependencies not installed for {serializer}') + Note: Serializer combinations are only tested for Filesystem backend. + """ url = httpbin(method.lower()) session = self.init_session(serializer=serializer) for params in [{'param_1': 1}, {'param_1': 2}, {'param_2': 2}]: assert session.request(method, url, **{field: params}).from_cache is False assert session.request(method, url, **{field: params}).from_cache is True - @pytest.mark.parametrize('serializer', TEST_SERIALIZERS.values()) @pytest.mark.parametrize('response_format', HTTPBIN_FORMATS) - def test_all_response_formats(self, response_format, serializer): - """Test all relevant combinations of (response formats X serializers)""" - if not _valid_serializer(serializer): - pytest.skip(f'Dependencies not installed for {serializer}') - + def test_all_response_formats(self, response_format, serializer=None): + """Test all relevant combinations of response formats X serializers""" session = self.init_session(serializer=serializer) # Workaround for this issue: https://github.com/kevin1024/pytest-httpbin/issues/60 if response_format == 'json' and USE_PYTEST_HTTPBIN: |