summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGábor Boros <gabor.brs@gmail.com>2021-08-26 18:59:08 +0400
committerAsif Saif Uddin <auvipy@gmail.com>2021-08-27 16:35:35 +0600
commit24b0820d0bddcad074209cc1381d92d17207448c (patch)
treed7c97f33b1fbb2e466124aecf4a3fe13332e3efa
parentcad7a88b3f189f84a81e641abd5689eafc2286fd (diff)
downloadkombu-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.py9
-rw-r--r--t/unit/transport/test_redis.py15
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",