diff --git a/django_redis/cache.py b/django_redis/cache.py index 94881ac5..ff4613be 100644 --- a/django_redis/cache.py +++ b/django_redis/cache.py @@ -185,7 +185,8 @@ def lock(self, *args, **kwargs): @omit_exception def close(self, **kwargs): - self.client.close(**kwargs) + if self._client: + self.client.close(**kwargs) @omit_exception def touch(self, *args, **kwargs): diff --git a/tests/test_backend.py b/tests/test_backend.py index 3a33a334..0090110c 100644 --- a/tests/test_backend.py +++ b/tests/test_backend.py @@ -532,6 +532,11 @@ def test_close(self, cache: RedisCache, settings: SettingsWrapper): cache.set("f", "1") cache.close() + def test_close_uninitialized_client(self): + cache = RedisCache("default", {}) + cache._client = None + cache.close() + def test_close_client(self, cache: RedisCache, mocker: MockerFixture): mock = mocker.patch.object(cache.client, "close") cache.close()