From 246fee381c8fe35f1dc88d56b52018cdd546230b Mon Sep 17 00:00:00 2001 From: three-kinds <3179158552@qq.com> Date: Tue, 4 Mar 2025 08:58:48 +0800 Subject: [PATCH] Fix client_list with multiple client ids --- redis/commands/core.py | 2 +- tests/test_commands.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/redis/commands/core.py b/redis/commands/core.py index 880d0fda41..c3ffb955c4 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -530,7 +530,7 @@ def client_list( raise DataError("client_id must be a list") if client_id: args.append(b"ID") - args.append(" ".join(client_id)) + args += client_id return self.execute_command("CLIENT LIST", *args, **kwargs) def client_getname(self, **kwargs) -> ResponseT: diff --git a/tests/test_commands.py b/tests/test_commands.py index f89c5f3365..b6f13f6aa8 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -667,11 +667,15 @@ def test_client_list_client_id(self, r, request): assert "addr" in clients[0] # testing multiple client ids - _get_client(redis.Redis, request, flushdb=False) - _get_client(redis.Redis, request, flushdb=False) - _get_client(redis.Redis, request, flushdb=False) - clients_listed = r.client_list(client_id=clients[:-1]) - assert len(clients_listed) > 1 + client_list = list() + client_count = 3 + for i in range(client_count): + client = _get_client(redis.Redis, request, flushdb=False) + client_list.append(client) + + multiple_client_ids = [str(client.client_id()) for client in client_list] + clients_listed = r.client_list(client_id=multiple_client_ids) + assert len(clients_listed) == len(multiple_client_ids) @pytest.mark.onlynoncluster @skip_if_server_version_lt("5.0.0")