summaryrefslogtreecommitdiff
path: root/tests/test_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_commands.py')
-rw-r--r--tests/test_commands.py58
1 files changed, 51 insertions, 7 deletions
diff --git a/tests/test_commands.py b/tests/test_commands.py
index 904e27f..8929198 100644
--- a/tests/test_commands.py
+++ b/tests/test_commands.py
@@ -1840,6 +1840,7 @@ class TestRedisCommands:
r.zadd('a', {'a1': 1, 'a2': 2, 'a3': 3})
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, desc=True) == [b'a3', b'a2', b'a1']
# withscores
assert r.zrange('a', 0, 1, withscores=True) == \
@@ -1851,6 +1852,46 @@ class TestRedisCommands:
assert r.zrange('a', 0, 1, withscores=True, score_cast_func=int) == \
[(b'a1', 1), (b'a2', 2)]
+ def test_zrange_errors(self, r):
+ with pytest.raises(exceptions.DataError):
+ r.zrange('a', 0, 1, byscore=True, bylex=True)
+ with pytest.raises(exceptions.DataError):
+ r.zrange('a', 0, 1, bylex=True, withscores=True)
+ with pytest.raises(exceptions.DataError):
+ r.zrange('a', 0, 1, byscore=True, withscores=True, offset=4)
+ with pytest.raises(exceptions.DataError):
+ r.zrange('a', 0, 1, byscore=True, withscores=True, num=2)
+
+ @skip_if_server_version_lt('6.2.0')
+ def test_zrange_params(self, r):
+ # bylex
+ r.zadd('a', {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0, 'g': 0})
+ assert r.zrange('a', '[aaa', '(g', bylex=True) == \
+ [b'b', b'c', b'd', b'e', b'f']
+ assert r.zrange('a', '[f', '+', bylex=True) == [b'f', b'g']
+ assert r.zrange('a', '+', '[f', desc=True, bylex=True) == [b'g', b'f']
+ assert r.zrange('a', '-', '+', bylex=True, offset=3, num=2) == \
+ [b'd', b'e']
+ assert r.zrange('a', '+', '-', desc=True, bylex=True,
+ offset=3, num=2) == \
+ [b'd', b'c']
+
+ # byscore
+ r.zadd('a', {'a1': 1, 'a2': 2, 'a3': 3, 'a4': 4, 'a5': 5})
+ assert r.zrange('a', 2, 4, byscore=True, offset=1, num=2) == \
+ [b'a3', b'a4']
+ assert r.zrange('a', 4, 2, desc=True, byscore=True,
+ offset=1, num=2) == \
+ [b'a3', b'a2']
+ assert r.zrange('a', 2, 4, byscore=True, withscores=True) == \
+ [(b'a2', 2.0), (b'a3', 3.0), (b'a4', 4.0)]
+ assert r.zrange('a', 4, 2, desc=True, byscore=True,
+ withscores=True, score_cast_func=int) == \
+ [(b'a4', 4), (b'a3', 3), (b'a2', 2)]
+
+ # rev
+ assert r.zrange('a', 0, 1, desc=True) == [b'a5', b'a4']
+
@skip_if_server_version_lt('6.2.0')
def test_zrangestore(self, r):
r.zadd('a', {'a1': 1, 'a2': 2, 'a3': 3})
@@ -1860,6 +1901,16 @@ class TestRedisCommands:
assert r.zrange('b', 0, -1) == [b'a2', b'a3']
assert r.zrange('b', 0, -1, withscores=True) == \
[(b'a2', 2), (b'a3', 3)]
+ # reversed order
+ assert r.zrangestore('b', 'a', 1, 2, desc=True)
+ assert r.zrange('b', 0, -1) == [b'a1', b'a2']
+ # by score
+ assert r.zrangestore('b', 'a', 1, 2, byscore=True,
+ offset=0, num=1)
+ assert r.zrange('b', 0, -1) == [b'a1']
+ # by lex
+ assert r.zrange('a', '[a2', '(a3', bylex=True) == \
+ [b'a2']
@skip_if_server_version_lt('2.8.9')
def test_zrangebylex(self, r):
@@ -1885,16 +1936,12 @@ class TestRedisCommands:
def test_zrangebyscore(self, r):
r.zadd('a', {'a1': 1, 'a2': 2, 'a3': 3, 'a4': 4, 'a5': 5})
assert r.zrangebyscore('a', 2, 4) == [b'a2', b'a3', b'a4']
-
# slicing with start/num
assert r.zrangebyscore('a', 2, 4, start=1, num=2) == \
[b'a3', b'a4']
-
# withscores
assert r.zrangebyscore('a', 2, 4, withscores=True) == \
[(b'a2', 2.0), (b'a3', 3.0), (b'a4', 4.0)]
-
- # custom score function
assert r.zrangebyscore('a', 2, 4, withscores=True,
score_cast_func=int) == \
[(b'a2', 2), (b'a3', 3), (b'a4', 4)]
@@ -1958,15 +2005,12 @@ class TestRedisCommands:
def test_zrevrangebyscore(self, r):
r.zadd('a', {'a1': 1, 'a2': 2, 'a3': 3, 'a4': 4, 'a5': 5})
assert r.zrevrangebyscore('a', 4, 2) == [b'a4', b'a3', b'a2']
-
# slicing with start/num
assert r.zrevrangebyscore('a', 4, 2, start=1, num=2) == \
[b'a3', b'a2']
-
# withscores
assert r.zrevrangebyscore('a', 4, 2, withscores=True) == \
[(b'a4', 4.0), (b'a3', 3.0), (b'a2', 2.0)]
-
# custom score function
assert r.zrevrangebyscore('a', 4, 2, withscores=True,
score_cast_func=int) == \