From e7a4f3c3b66bd323a2a9404fc71f6b2bc03471a3 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Thu, 9 Aug 2018 16:11:32 -0400 Subject: [PATCH] HMSET should fail on empty mapping. --- mockredis/client.py | 2 ++ mockredis/tests/test_hash.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mockredis/client.py b/mockredis/client.py index e67edbc..bcfcb18 100644 --- a/mockredis/client.py +++ b/mockredis/client.py @@ -539,6 +539,8 @@ def hlen(self, hashkey): def hmset(self, hashkey, value): """Emulate hmset.""" + if len(value) == 0: + raise ResponseError("empty mapping passed to 'hmset'") redis_hash = self._get_hash(hashkey, 'HMSET', create=True) for key, value in value.items(): diff --git a/mockredis/tests/test_hash.py b/mockredis/tests/test_hash.py index 8ecce36..0b772fd 100644 --- a/mockredis/tests/test_hash.py +++ b/mockredis/tests/test_hash.py @@ -1,6 +1,6 @@ from nose.tools import eq_, ok_ -from mockredis.tests.fixtures import setup, teardown +from mockredis.tests.fixtures import raises_response_error, setup, teardown class TestRedisHash(object): @@ -72,6 +72,10 @@ def test_hmset(self): eq_(b"value1", self.redis.hget(hashkey, "key1")) eq_(b"value2", self.redis.hget(hashkey, "key2")) + @raises_response_error + def test_hmset_empty(self): + self.redis.hmset("hash", {}) + def test_hmset_integral(self): hashkey = "hash" self.redis.hmset(hashkey, {1: 2, 3: 4})