Merging upstream version 1.12.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
efb6cb056d
commit
66b78e69ac
17 changed files with 293 additions and 71 deletions
|
@ -1,3 +1,4 @@
|
|||
import os
|
||||
import re
|
||||
import pytest
|
||||
import redis
|
||||
|
@ -20,6 +21,11 @@ def completer():
|
|||
return IRedisCompleter()
|
||||
|
||||
|
||||
zset_type = "ziplist"
|
||||
if os.environ["REDIS_VERSION"] == "7":
|
||||
zset_type = "listpack"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"_input, command_name, expect_args",
|
||||
[
|
||||
|
@ -169,7 +175,16 @@ def test_not_retry_on_authentication_error(iredis_client, config):
|
|||
iredis_client.execute("None", "GET", ["foo"])
|
||||
|
||||
|
||||
@pytest.mark.skipif("int(os.environ['REDIS_VERSION']) < 6")
|
||||
@pytest.mark.skipif(
|
||||
"int(os.environ['REDIS_VERSION']) != 6",
|
||||
reason="""
|
||||
in redis7, it will not work if you:
|
||||
1. connect redis without password
|
||||
2. set a password
|
||||
3. auth
|
||||
|
||||
the auth will fail""",
|
||||
)
|
||||
def test_auto_select_db_and_auth_for_reconnect_only_6(iredis_client, config):
|
||||
config.retry_times = 2
|
||||
config.raw = True
|
||||
|
@ -256,6 +271,13 @@ def test_peek_key_not_exist(iredis_client, clean_redis, config):
|
|||
assert peek_result == ["non-exist-key doesn't exist."]
|
||||
|
||||
|
||||
def test_iredis_with_username():
|
||||
with patch("redis.connection.Connection.connect"):
|
||||
c = Client("127.0.0.1", "6379", username="abc", password="abc1")
|
||||
assert c.connection.username == "abc"
|
||||
assert c.connection.password == "abc1"
|
||||
|
||||
|
||||
def test_peek_string(iredis_client, clean_redis):
|
||||
clean_redis.set("foo", "bar")
|
||||
peek_result = list(iredis_client.do_peek("foo"))
|
||||
|
@ -337,12 +359,13 @@ def test_peek_zset_fetch_all(iredis_client, clean_redis):
|
|||
"myzset", dict(zip([f"hello-{index}" for index in range(3)], range(3)))
|
||||
)
|
||||
peek_result = list(iredis_client.do_peek("myzset"))
|
||||
|
||||
formatted_text_rematch(
|
||||
peek_result[0][0:9],
|
||||
FormattedText(
|
||||
[
|
||||
("class:dockey", "key: "),
|
||||
("", r"zset \(ziplist\) mem: \d+ bytes, ttl: -1"),
|
||||
("", rf"zset \({zset_type}\) mem: \d+ bytes, ttl: -1"),
|
||||
("", "\n"),
|
||||
("class:dockey", "zcount: "),
|
||||
("", "3"),
|
||||
|
@ -365,7 +388,7 @@ def test_peek_zset_fetch_part(iredis_client, clean_redis):
|
|||
FormattedText(
|
||||
[
|
||||
("class:dockey", "key: "),
|
||||
("", r"zset \(ziplist\) mem: \d+ bytes, ttl: -1"),
|
||||
("", rf"zset \({zset_type}\) mem: \d+ bytes, ttl: -1"),
|
||||
("", "\n"),
|
||||
("class:dockey", "zcount: "),
|
||||
("", "40"),
|
||||
|
@ -527,29 +550,23 @@ def test_version_parse_for_auth(iredis_client):
|
|||
"info, version",
|
||||
[
|
||||
(
|
||||
(
|
||||
"# Server\r\nredis_version:df--128-NOTFOUND\r\n"
|
||||
"redis_mode:standalone\r\narch_bits:64"
|
||||
),
|
||||
"# Server\r\nredis_version:df--128-NOTFOUND\r\n"
|
||||
"redis_mode:standalone\r\narch_bits:64",
|
||||
"df--128-NOTFOUND",
|
||||
),
|
||||
(
|
||||
(
|
||||
"# Server\r\nredis_version:6.2.5\r\n"
|
||||
"redis_git_sha1:00000000\r\n"
|
||||
"redis_git_dirty:0\r\n"
|
||||
"redis_build_id:915e5480613bc9b6\r\n"
|
||||
"redis_mode:standalone "
|
||||
),
|
||||
"# Server\r\nredis_version:6.2.5\r\n"
|
||||
"redis_git_sha1:00000000\r\n"
|
||||
"redis_git_dirty:0\r\n"
|
||||
"redis_build_id:915e5480613bc9b6\r\n"
|
||||
"redis_mode:standalone ",
|
||||
"6.2.5",
|
||||
),
|
||||
(
|
||||
(
|
||||
"# Server\r\nredis_version:5.0.14.1\r\n"
|
||||
"redis_git_sha1:00000000\r\nredis_git_dirty:0\r\n"
|
||||
"redis_build_id:915e5480613bc9b6\r\n"
|
||||
"redis_mode:standalone "
|
||||
),
|
||||
"# Server\r\nredis_version:5.0.14.1\r\n"
|
||||
"redis_git_sha1:00000000\r\nredis_git_dirty:0\r\n"
|
||||
"redis_build_id:915e5480613bc9b6\r\n"
|
||||
"redis_mode:standalone ",
|
||||
"5.0.14.1",
|
||||
),
|
||||
],
|
||||
|
@ -564,3 +581,22 @@ def test_version_path(info, version):
|
|||
client = Client("127.0.0.1", "6379", None)
|
||||
client.get_server_info()
|
||||
assert mock_config.version == version
|
||||
|
||||
|
||||
def test_prompt():
|
||||
c = Client()
|
||||
assert str(c) == "127.0.0.1:6379> "
|
||||
|
||||
c = Client(prompt="{host} {port} {db}")
|
||||
assert str(c) == "127.0.0.1 6379 0"
|
||||
|
||||
c = Client(prompt="{host} {port} {db} {username}")
|
||||
assert str(c) == "127.0.0.1 6379 0 None"
|
||||
|
||||
c = Client(prompt="{host} {port} {db} {username}", username="foo1")
|
||||
assert str(c) == "127.0.0.1 6379 0 foo1"
|
||||
|
||||
c = Client(prompt="{client_id} aabc")
|
||||
assert re.match(r"^\d+ aabc$", str(c))
|
||||
c = Client(prompt="{client_addr} >")
|
||||
assert re.match(r"^127.0.0.1:\d+ >$", str(c))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue