From bcc1209285f0294ac416b052ece6993acee80170 Mon Sep 17 00:00:00 2001 From: Omer Katz Date: Sun, 19 Aug 2018 18:01:14 +0300 Subject: [PATCH] Implemented hstrlen. --- README.rst | 6 ------ fakeredis.py | 4 ++++ test_fakeredis.py | 10 ++++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index 55cae93..a965c32 100644 --- a/README.rst +++ b/README.rst @@ -229,12 +229,6 @@ geo * georadiusbymember -hash ----- - - * hstrlen - - sorted_set ---------- diff --git a/fakeredis.py b/fakeredis.py index 138e23b..901e19f 100644 --- a/fakeredis.py +++ b/fakeredis.py @@ -1221,6 +1221,10 @@ def hget(self, name, key): "Return the value of ``key`` within the hash ``name``" return self._get_hash(name).get(key) + def hstrlen(self, name, key): + "Returns the string length of the value associated with field in the hash stored at key" + return len(self._get_hash(name).get(key, "")) + def hgetall(self, name): "Return a Python dict of the hash's name/value pairs" all_items = dict() diff --git a/test_fakeredis.py b/test_fakeredis.py index 71fc30b..c99a876 100644 --- a/test_fakeredis.py +++ b/test_fakeredis.py @@ -1082,6 +1082,16 @@ def test_empty_list(self): # Tests for the hash type. + def test_hstrlen_missing(self): + self.assertEqual(self.redis.hstrlen('foo', 'doesnotexist'), 0) + + self.redis.hset('foo', 'key', 'value') + self.assertEqual(self.redis.hstrlen('foo', 'doesnotexist'), 0) + + def test_hstrlen(self): + self.redis.hset('foo', 'key', 'value') + self.assertEqual(self.redis.hstrlen('foo', 'key'), 5) + def test_hset_then_hget(self): self.assertEqual(self.redis.hset('foo', 'key', 'value'), 1) self.assertEqual(self.redis.hget('foo', 'key'), b'value')