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")