summaryrefslogtreecommitdiff
path: root/tests/test_commands.py
diff options
context:
space:
mode:
authorChayim I. Kirshen <c@kirshen.com>2021-09-01 16:22:09 +0300
committerChayim I. Kirshen <c@kirshen.com>2021-09-01 16:22:09 +0300
commit5b39a2fd749722bf7d6861a968c1d06942a45c16 (patch)
tree5e4dfd1a17a8e909938edbeb07ab6baddc8acbcb /tests/test_commands.py
parent879584b7a359cfd7eeb008b41ba9ca9be16e6633 (diff)
downloadredis-py-5b39a2fd749722bf7d6861a968c1d06942a45c16.tar.gz
CLIENT LIST fix to allow multiple client_ids
Support for CLIENT KILL with the USER filter Part of #1546
Diffstat (limited to 'tests/test_commands.py')
-rw-r--r--tests/test_commands.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/test_commands.py b/tests/test_commands.py
index d77a01c..845da90 100644
--- a/tests/test_commands.py
+++ b/tests/test_commands.py
@@ -296,13 +296,19 @@ class TestRedisCommands:
assert isinstance(clients, list)
@skip_if_server_version_lt('6.2.0')
- def test_client_list_client_id(self, r):
+ def test_client_list_client_id(self, r, request):
clients = r.client_list()
- client_id = clients[0]['id']
- clients = r.client_list(client_id=client_id)
+ clients = r.client_list(client_id=[clients[0]['id']])
assert len(clients) == 1
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) == 4
+
@skip_if_server_version_lt('5.0.0')
def test_client_id(self, r):
assert r.client_id() > 0
@@ -417,6 +423,19 @@ class TestRedisCommands:
client_2_addr = clients_by_name['redis-py-c2'].get('laddr')
assert r.client_kill_filter(laddr=client_2_addr)
+ @skip_if_server_version_lt('2.8.12')
+ def test_client_kill_filter_by_user(self, r, request):
+ killuser = 'user_to_kill'
+ r.acl_setuser(killuser, enabled=True, reset=True,
+ commands=['+get', '+set', '+select'],
+ keys=['cache:*'], nopass=True)
+ _get_client(redis.Redis, request, flushdb=False, username=killuser)
+ r.client_kill_filter(user=killuser)
+ clients = r.client_list()
+ for c in clients:
+ assert c['user'] != killuser
+ r.acl_deluser(killuser)
+
@skip_if_server_version_lt('2.9.50')
def test_client_pause(self, r):
assert r.client_pause(1)