diff --git a/kombu/transport/redis.py b/kombu/transport/redis.py index 02d06b458..32a5d4ec5 100644 --- a/kombu/transport/redis.py +++ b/kombu/transport/redis.py @@ -197,7 +197,10 @@ class GlobalKeyPrefixMixin: "LLEN", "LPUSH", "PUBLISH", + "RPUSH", + "RPOP", "SADD", + "SREM", "SET", "SMEMBERS", "ZADD", @@ -206,6 +209,7 @@ class GlobalKeyPrefixMixin: ] PREFIXED_COMPLEX_COMMANDS = { + "DEL": {"args_start": 0, "args_end": None}, "BRPOP": {"args_start": 0, "args_end": -1}, "EVALSHA": {"args_start": 2, "args_end": 3}, } @@ -222,13 +226,10 @@ def _prefix_args(self, args): args_end = self.PREFIXED_COMPLEX_COMMANDS[command]["args_end"] pre_args = args[:args_start] if args_start > 0 else [] + post_args = [] if args_end is not None: post_args = args[args_end:] - elif args_end < 0: - post_args = args[len(args):] - else: - post_args = [] args = pre_args + [ self.global_keyprefix + str(arg) diff --git a/t/unit/transport/test_redis.py b/t/unit/transport/test_redis.py index 3e1f76f58..0f585ca9e 100644 --- a/t/unit/transport/test_redis.py +++ b/t/unit/transport/test_redis.py @@ -1561,6 +1561,21 @@ def test_prefix_simple_args(self): f"{self.global_keyprefix}fake_key" ] + def test_prefix_delete_args(self): + prefixed_args = self.mixin._prefix_args([ + "DEL", + "fake_key", + "fake_key2", + "fake_key3" + ]) + + assert prefixed_args == [ + "DEL", + f"{self.global_keyprefix}fake_key", + f"{self.global_keyprefix}fake_key2", + f"{self.global_keyprefix}fake_key3", + ] + def test_prefix_brpop_args(self): prefixed_args = self.mixin._prefix_args([ "BRPOP",