From 560457337c37ceaa16baaf65b1674e83463ecc20 Mon Sep 17 00:00:00 2001 From: AvitalFineRedis Date: Thu, 11 Nov 2021 09:50:51 +0100 Subject: [PATCH 1/4] Support desc for 3.5.3 --- redis/commands/core.py | 4 ++++ tests/test_commands.py | 1 + 2 files changed, 5 insertions(+) diff --git a/redis/commands/core.py b/redis/commands/core.py index 90997ff931..0344e3a433 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -2520,6 +2520,10 @@ def zrange(self, name, start, end, desc=False, withscores=False, ``offset`` and ``num`` are specified, then return a slice of the range. Can't be provided when using ``bylex``. """ + # Supports old implementation: need to support ``desc`` also for version < 6.2.0 + if not byscore and not bylex and (offset is None and num is None) and desc: + return self.zrevrange(name, start, end, withscores, + score_cast_func) return self._zrange('ZRANGE', None, name, start, end, desc, byscore, bylex, withscores, score_cast_func, offset, num) diff --git a/tests/test_commands.py b/tests/test_commands.py index 6d4ab008ab..c361a4ba70 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1867,6 +1867,7 @@ def test_zrange(self, r): assert r.zrange('a', 0, 1) == [b'a1', b'a2'] assert r.zrange('a', 1, 2) == [b'a2', b'a3'] assert r.zrange('a', 0, 2) == [b'a1', b'a2', b'a3'] + assert r.zrange('a', 0, 2, desc=True) == [b'a3', b'a2', b'a1'] # withscores assert r.zrange('a', 0, 1, withscores=True) == \ From 68c6323191fbb1b31b6533af458be1eb27ba75f8 Mon Sep 17 00:00:00 2001 From: AvitalFineRedis Date: Thu, 11 Nov 2021 10:46:16 +0100 Subject: [PATCH 2/4] fix test_restore (idletime and frequency are supported only from version 5.0.0) --- tests/test_commands.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_commands.py b/tests/test_commands.py index c361a4ba70..2fc6d30ef8 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -3661,7 +3661,8 @@ def test_restore(self, r): assert r.restore(key2, 0, dumpdata) assert r.ttl(key2) == -1 - # idletime + @skip_if_server_version_lt('5.0.0') + def test_restore_idletime(self, r): key = 'yayakey' r.set(key, 'blee!') dumpdata = r.dump(key) @@ -3669,7 +3670,8 @@ def test_restore(self, r): assert r.restore(key, 0, dumpdata, idletime=5) assert r.get(key) == b'blee!' - # frequency + @skip_if_server_version_lt('5.0.0') + def test_restore_frequency(self, r): key = 'yayakey' r.set(key, 'blee!') dumpdata = r.dump(key) @@ -3679,10 +3681,8 @@ def test_restore(self, r): @skip_if_server_version_lt('5.0.0') def test_replicaof(self, r): - with pytest.raises(redis.ResponseError): assert r.replicaof("NO ONE") - assert r.replicaof("NO", "ONE") From 2de175b8f338f6eafe91905aeff7db1b98535564 Mon Sep 17 00:00:00 2001 From: AvitalFineRedis Date: Thu, 11 Nov 2021 10:48:06 +0100 Subject: [PATCH 3/4] merge master --- redis/commands/core.py | 4 ---- tests/test_commands.py | 1 - 2 files changed, 5 deletions(-) diff --git a/redis/commands/core.py b/redis/commands/core.py index 0344e3a433..90997ff931 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -2520,10 +2520,6 @@ def zrange(self, name, start, end, desc=False, withscores=False, ``offset`` and ``num`` are specified, then return a slice of the range. Can't be provided when using ``bylex``. """ - # Supports old implementation: need to support ``desc`` also for version < 6.2.0 - if not byscore and not bylex and (offset is None and num is None) and desc: - return self.zrevrange(name, start, end, withscores, - score_cast_func) return self._zrange('ZRANGE', None, name, start, end, desc, byscore, bylex, withscores, score_cast_func, offset, num) diff --git a/tests/test_commands.py b/tests/test_commands.py index 2fc6d30ef8..36333432c6 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1867,7 +1867,6 @@ def test_zrange(self, r): assert r.zrange('a', 0, 1) == [b'a1', b'a2'] assert r.zrange('a', 1, 2) == [b'a2', b'a3'] assert r.zrange('a', 0, 2) == [b'a1', b'a2', b'a3'] - assert r.zrange('a', 0, 2, desc=True) == [b'a3', b'a2', b'a1'] # withscores assert r.zrange('a', 0, 1, withscores=True) == \ From 39086336b6ea155d5ce6497ad6006ff99001593e Mon Sep 17 00:00:00 2001 From: AvitalFineRedis Date: Thu, 11 Nov 2021 11:19:38 +0100 Subject: [PATCH 4/4] acl_setuser is avalible from version 6.0.0 (test was added here https://github.com/redis/redis-py/commit/42a050c6c0d120104c7433e825e7a798ba411e55) --- tests/test_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_commands.py b/tests/test_commands.py index 36333432c6..4991f89745 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -453,7 +453,7 @@ def test_client_kill_filter_by_laddr(self, r, r2): client_2_addr = clients_by_name['redis-py-c2'].get('laddr') assert r.client_kill_filter(laddr=client_2_addr) - @skip_if_server_version_lt('2.8.12') + @skip_if_server_version_lt('6.0.0') def test_client_kill_filter_by_user(self, r, request): killuser = 'user_to_kill' r.acl_setuser(killuser, enabled=True, reset=True,