summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChayim I. Kirshen <c@kirshen.com>2021-11-03 15:42:17 +0200
committerChayim I. Kirshen <c@kirshen.com>2021-11-03 15:42:17 +0200
commit96af3aa5f4370f479a090e64d52a13cdf6503569 (patch)
tree076e117f6b1eb594fa3114a1bfcf1519ceb8f082
parent75c5d5974ed3f6a5069f601f4c0d42ad3ae48c76 (diff)
downloadredis-py-ck-smismember.tar.gz
SMISMEMBER supportck-smismember
-rw-r--r--redis/commands/core.py8
-rw-r--r--tests/test_commands.py7
2 files changed, 15 insertions, 0 deletions
diff --git a/redis/commands/core.py b/redis/commands/core.py
index 6512b45..8dba5a2 100644
--- a/redis/commands/core.py
+++ b/redis/commands/core.py
@@ -1768,6 +1768,14 @@ class CoreCommands:
"""Return all members of the set ``name``"""
return self.execute_command('SMEMBERS', name)
+ def smismember(self, name, values, *args):
+ """
+ Return whether each value in ``values`` is a member of the set ``name``
+ as a list of ``bool`` in the order of ``values``
+ """
+ args = list_or_args(values, args)
+ return self.execute_command('SMISMEMBER', name, *args)
+
def smove(self, src, dst, value):
"""Move ``value`` from set ``src`` to set ``dst`` atomically"""
return self.execute_command('SMOVE', src, dst, value)
diff --git a/tests/test_commands.py b/tests/test_commands.py
index 8aa584b..723612a 100644
--- a/tests/test_commands.py
+++ b/tests/test_commands.py
@@ -1577,6 +1577,13 @@ class TestRedisCommands:
r.sadd('a', '1', '2', '3')
assert r.smembers('a') == {b'1', b'2', b'3'}
+ @skip_if_server_version_lt('6.2.0')
+ def test_smismember(self, r):
+ r.sadd('a', '1', '2', '3')
+ result_list = [True, False, True, True]
+ assert r.smismember('a', '1', '4', '2', '3') == result_list
+ assert r.smismember('a', ['1', '4', '2', '3']) == result_list
+
def test_smove(self, r):
r.sadd('a', 'a1', 'a2')
r.sadd('b', 'b1', 'b2')