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})