diff --git a/redis/cluster.py b/redis/cluster.py index 1ffa5ff547..cba62de077 100644 --- a/redis/cluster.py +++ b/redis/cluster.py @@ -267,6 +267,7 @@ class AbstractRedisCluster: "READONLY", "CLUSTER INFO", "CLUSTER MEET", + "CLUSTER MYSHARDID", "CLUSTER NODES", "CLUSTER REPLICAS", "CLUSTER RESET", diff --git a/tests/test_asyncio/test_commands.py b/tests/test_asyncio/test_commands.py index 7808d171fa..6a3a2eca59 100644 --- a/tests/test_asyncio/test_commands.py +++ b/tests/test_asyncio/test_commands.py @@ -489,20 +489,6 @@ async def test_client_no_touch(self, r: redis.Redis): with pytest.raises(TypeError): await r.client_no_touch() - @skip_if_server_version_lt("7.2.0") - @pytest.mark.onlycluster - async def test_waitaof(self, r): - # must return a list of 2 elements - assert len(await r.waitaof(0, 0, 0)) == 2 - assert len(await r.waitaof(1, 0, 0)) == 2 - assert len(await r.waitaof(1, 0, 1000)) == 2 - - # value is out of range, value must between 0 and 1 - with pytest.raises(exceptions.ResponseError): - await r.waitaof(2, 0, 0) - with pytest.raises(exceptions.ResponseError): - await r.waitaof(-1, 0, 0) - async def test_config_get(self, r: redis.Redis): data = await r.config_get() assert "maxmemory" in data @@ -1821,9 +1807,11 @@ async def test_zrank(self, r: redis.Redis): async def test_zrank_withscore(self, r: redis.Redis): await r.zadd("a", {"a1": 1, "a2": 2, "a3": 3, "a4": 4, "a5": 5}) assert await r.zrank("a", "a1") == 0 - assert await r.rank("a", "a2") == 1 + assert await r.zrank("a", "a2") == 1 assert await r.zrank("a", "a6") is None - assert await r.zrank("a", "a3", withscore=True) == [2, "3"] + assert_resp_response( + r, await r.zrank("a", "a3", withscore=True), [2, b"3"], [2, 3.0] + ) assert await r.zrank("a", "a6", withscore=True) is None async def test_zrem(self, r: redis.Redis): @@ -1920,7 +1908,9 @@ async def test_zrevrank_withscore(self, r: redis.Redis): assert await r.zrevrank("a", "a1") == 4 assert await r.zrevrank("a", "a2") == 3 assert await r.zrevrank("a", "a6") is None - assert await r.zrevrank("a", "a3", withscore=True) == [2, "3"] + assert_resp_response( + r, await r.zrevrank("a", "a3", withscore=True), [2, b"3"], [2, 3.0] + ) assert await r.zrevrank("a", "a6", withscore=True) is None async def test_zscore(self, r: redis.Redis): @@ -2877,13 +2867,15 @@ async def test_xinfo_consumers(self, r: redis.Redis): info = await r.xinfo_consumers(stream, group) assert len(info) == 2 expected = [ - {"name": consumer1.encode(), "pending": 1, "inactive": 2}, - {"name": consumer2.encode(), "pending": 2, "inactive": 2}, + {"name": consumer1.encode(), "pending": 1}, + {"name": consumer2.encode(), "pending": 2}, ] - # we can't determine the idle time, so just make sure it's an int + # we can't determine the idle and inactive time, so just make sure it's an int assert isinstance(info[0].pop("idle"), int) assert isinstance(info[1].pop("idle"), int) + assert isinstance(info[0].pop("inactive"), int) + assert isinstance(info[1].pop("inactive"), int) assert info == expected @skip_if_server_version_lt("5.0.0") diff --git a/tests/test_commands.py b/tests/test_commands.py index 055aa3bf9f..114fb6b686 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -745,20 +745,6 @@ def test_client_no_touch(self, r): with pytest.raises(TypeError): r.client_no_touch() - @pytest.mark.onlycluster - @skip_if_server_version_lt("7.2.0") - def test_waitaof(self, r): - # must return a list of 2 elements - assert len(r.waitaof(0, 0, 0)) == 2 - assert len(r.waitaof(1, 0, 0)) == 2 - assert len(r.waitaof(1, 0, 1000)) == 2 - - # value is out of range, value must between 0 and 1 - with pytest.raises(exceptions.ResponseError): - r.waitaof(2, 0, 0) - with pytest.raises(exceptions.ResponseError): - r.waitaof(-1, 0, 0) - @pytest.mark.onlynoncluster @skip_if_server_version_lt("3.2.0") def test_client_reply(self, r, r_timeout): @@ -2854,9 +2840,9 @@ def test_zrank(self, r): def test_zrank_withscore(self, r: redis.Redis): r.zadd("a", {"a1": 1, "a2": 2, "a3": 3, "a4": 4, "a5": 5}) assert r.zrank("a", "a1") == 0 - assert r.rank("a", "a2") == 1 + assert r.zrank("a", "a2") == 1 assert r.zrank("a", "a6") is None - assert r.zrank("a", "a3", withscore=True) == [2, "3"] + assert_resp_response(r, r.zrank("a", "a3", withscore=True), [2, b"3"], [2, 3.0]) assert r.zrank("a", "a6", withscore=True) is None def test_zrem(self, r): @@ -2951,7 +2937,9 @@ def test_zrevrank_withscore(self, r): assert r.zrevrank("a", "a1") == 4 assert r.zrevrank("a", "a2") == 3 assert r.zrevrank("a", "a6") is None - assert r.zrevrank("a", "a3", withscore=True) == [2, "3"] + assert_resp_response( + r, r.zrevrank("a", "a3", withscore=True), [2, b"3"], [2, 3.0] + ) assert r.zrevrank("a", "a6", withscore=True) is None def test_zscore(self, r): @@ -4404,13 +4392,15 @@ def test_xinfo_consumers(self, r): info = r.xinfo_consumers(stream, group) assert len(info) == 2 expected = [ - {"name": consumer1.encode(), "pending": 1, "inactive": 2}, - {"name": consumer2.encode(), "pending": 2, "inactive": 2}, + {"name": consumer1.encode(), "pending": 1}, + {"name": consumer2.encode(), "pending": 2}, ] - # we can't determine the idle time, so just make sure it's an int + # we can't determine the idle and inactive time, so just make sure it's an int assert isinstance(info[0].pop("idle"), int) assert isinstance(info[1].pop("idle"), int) + assert isinstance(info[0].pop("inactive"), int) + assert isinstance(info[1].pop("inactive"), int) assert info == expected @skip_if_server_version_lt("7.0.0")