diff --git a/django_redis/cache.py b/django_redis/cache.py index 94881ac5..ef83c98f 100644 --- a/django_redis/cache.py +++ b/django_redis/cache.py @@ -185,7 +185,7 @@ def lock(self, *args, **kwargs): @omit_exception def close(self, **kwargs): - self.client.close(**kwargs) + self.client.close() @omit_exception def touch(self, *args, **kwargs): diff --git a/tests/test_backend.py b/tests/test_backend.py index 3a33a334..462a863c 100644 --- a/tests/test_backend.py +++ b/tests/test_backend.py @@ -1029,3 +1029,15 @@ def test_sunionstore(self, cache: RedisCache): cache.sadd("foo2", "bar2", "bar3") assert cache.sunionstore("foo3", "foo1", "foo2") == 3 assert cache.smembers("foo3") == {"bar1", "bar2", "bar3"} + + def test_close_with_signal_parameter(self, cache: RedisCache): + """Test that close() method handles signal parameter from Django request_finished signal.""" + # This should not raise TypeError even when called with extra parameters + # that Django's request_finished signal passes + cache.close(signal="request_finished", sender=object) + + # Test with no parameters as well + cache.close() + + # Test with arbitrary keyword arguments + cache.close(foo="bar", signal=None, sender="test")