Skip to content

Commit 72b4926

Browse files
authored
SMISMEMBER support (#1667)
1 parent 75c5d59 commit 72b4926

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

redis/commands/core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1768,6 +1768,14 @@ def smembers(self, name):
17681768
"""Return all members of the set ``name``"""
17691769
return self.execute_command('SMEMBERS', name)
17701770

1771+
def smismember(self, name, values, *args):
1772+
"""
1773+
Return whether each value in ``values`` is a member of the set ``name``
1774+
as a list of ``bool`` in the order of ``values``
1775+
"""
1776+
args = list_or_args(values, args)
1777+
return self.execute_command('SMISMEMBER', name, *args)
1778+
17711779
def smove(self, src, dst, value):
17721780
"""Move ``value`` from set ``src`` to set ``dst`` atomically"""
17731781
return self.execute_command('SMOVE', src, dst, value)

tests/test_commands.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,6 +1577,13 @@ def test_smembers(self, r):
15771577
r.sadd('a', '1', '2', '3')
15781578
assert r.smembers('a') == {b'1', b'2', b'3'}
15791579

1580+
@skip_if_server_version_lt('6.2.0')
1581+
def test_smismember(self, r):
1582+
r.sadd('a', '1', '2', '3')
1583+
result_list = [True, False, True, True]
1584+
assert r.smismember('a', '1', '4', '2', '3') == result_list
1585+
assert r.smismember('a', ['1', '4', '2', '3']) == result_list
1586+
15801587
def test_smove(self, r):
15811588
r.sadd('a', 'a1', 'a2')
15821589
r.sadd('b', 'b1', 'b2')

0 commit comments

Comments
 (0)