diff --git a/django_cache_mock/backends/redis.py b/django_cache_mock/backends/redis.py index 648c378..128b71b 100644 --- a/django_cache_mock/backends/redis.py +++ b/django_cache_mock/backends/redis.py @@ -7,7 +7,6 @@ logger = logging.getLogger(__name__) - try: from django.core.cache.backends.redis import RedisCache, RedisCacheClient @@ -82,18 +81,25 @@ class BaseDjangoRedisRedisCache(LazyLibImportError): parent_exception = _import_error -class RedisLiteMixin: - def __init__(self, server, params): - import redislite +try: + import redislite + + class RedisLiteMixin: + def __init__(self, server, params): + self.library = redislite + self.client_class = redislite.StrictRedis + self.dbfilename = server or "redislite.db" + super().__init__(server, params) + + @property + def redis_client_cls_kwargs(self): + return {"dbfilename": self.dbfilename} - self.library = redislite - self.client_class = redislite.StrictRedis - self.dbfilename = server or "redislite.db" - super().__init__(server, params) +except ImportError as _import_error: + logger.debug("redislite is not installed.") - @property - def redis_client_cls_kwargs(self): - return {"dbfilename": self.dbfilename} + class RedisLiteMixin(LazyLibImportError): + parent_exception = _import_error try: diff --git a/tests/conftest.py b/tests/conftest.py index 4b7242d..04bb2d1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -31,6 +31,11 @@ def _validate_backend_installed(cache_alias): if issubclass(backend, LazyLibImportError): return False + try: + caches[cache_alias] + except ImportError: + return False + return True diff --git a/tests/test_backends.py b/tests/test_backends.py index 46c4089..6e994da 100644 --- a/tests/test_backends.py +++ b/tests/test_backends.py @@ -1,6 +1,6 @@ import pytest from django.conf import settings -from django.core.cache import InvalidCacheBackendError, caches +from django.core.cache import caches from django_cache_mock.exceptions import LazyLibImportError from tests.thread_with_exceptions import Thread @@ -73,7 +73,7 @@ def test_memcached_import_error(memcached_cache_alias_not_installed): cache_alias = memcached_cache_alias_not_installed try: caches[cache_alias] - except InvalidCacheBackendError: + except ImportError: pass else: # pragma: no cover pytest.fail("Cache unexpectedly worked.")