diff options
author | Gábor Boros <gabor.brs@gmail.com> | 2021-08-26 18:59:08 +0400 |
---|---|---|
committer | Asif Saif Uddin <auvipy@gmail.com> | 2021-08-27 16:35:35 +0600 |
commit | 24b0820d0bddcad074209cc1381d92d17207448c (patch) | |
tree | d7c97f33b1fbb2e466124aecf4a3fe13332e3efa | |
parent | cad7a88b3f189f84a81e641abd5689eafc2286fd (diff) | |
download | kombu-24b0820d0bddcad074209cc1381d92d17207448c.tar.gz |
fix: add missing commands to prefix
Add missing DEL, RPUSH, RPOP and SREM commands to the list of commands to prefix.
Also, this commit refactors the prefixing logic a bit to make it simpler.
-rw-r--r-- | kombu/transport/redis.py | 9 | ||||
-rw-r--r-- | t/unit/transport/test_redis.py | 15 |
2 files changed, 20 insertions, 4 deletions
diff --git a/kombu/transport/redis.py b/kombu/transport/redis.py index 02d06b45..32a5d4ec 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 @@ class GlobalKeyPrefixMixin: 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 3e1f76f5..0f585ca9 100644 --- a/t/unit/transport/test_redis.py +++ b/t/unit/transport/test_redis.py @@ -1561,6 +1561,21 @@ class test_GlobalKeyPrefixMixin: 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", |