提交 a7559fee 编写于 作者: A AleksMat 提交者: Andy McCurdy

Fix for HSET argument validation to allow any non-None key

Fixes #1337
Fixes #1341
上级 252c840e
* 3.5.1 (May 9, 2020)
* Fix for HSET argument validation to allow any non-None key. Thanks
@AleksMat, #1337, #1341
* 3.5.0 (April 29, 2020)
* Removed exception trapping from __del__ methods. redis-py objects that
hold various resources implement __del__ cleanup methods to release
......
......@@ -3034,14 +3034,14 @@ class Redis(object):
def hset(self, name, key=None, value=None, mapping=None):
"""
Set ``key`` to ``value`` within hash ``name``,
Use ``mappings`` keyword args to set multiple key/value pairs
for a hash ``name``.
``mapping`` accepts a dict of key/value pairs that that will be
added to hash ``name``.
Returns the number of fields that were added.
"""
if not key and not mapping:
if key is None and not mapping:
raise DataError("'hset' with no key value pairs")
items = []
if key:
if key is not None:
items.extend((key, value))
if mapping:
for pair in mapping.items():
......
......@@ -1612,6 +1612,10 @@ class TestRedisCommands(object):
# key inside of hash that doesn't exist returns null value
assert r.hget('a', 'b') is None
# keys with bool(key) == False
assert r.hset('a', 0, 10) == 1
assert r.hset('a', '', 10) == 1
def test_hset_with_multi_key_values(self, r):
r.hset('a', mapping={'1': 1, '2': 2, '3': 3})
assert r.hget('a', '1') == b'1'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册