From 8091f8272ec33d98e6bd65e281acc4725fe11489 Mon Sep 17 00:00:00 2001 From: Alexey Novikov Date: Sun, 16 Apr 2017 19:59:10 +0300 Subject: [PATCH 1/3] Implement randomkey() --- mockredis/client.py | 7 +++++++ mockredis/tests/test_redis.py | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/mockredis/client.py b/mockredis/client.py index 926e048..ed4bb68 100644 --- a/mockredis/client.py +++ b/mockredis/client.py @@ -1060,6 +1060,13 @@ def srandmember(self, name, number=None): else: return [choice(list(redis_set)) for _ in xrange(abs(number))] + def randomkey(self): + """Emulate randomkey.""" + keys = self.redis.keys() + if not keys: + return None + return choice(keys) + def srem(self, key, *values): """Emulate srem.""" redis_set = self._get_set(key, 'SREM') diff --git a/mockredis/tests/test_redis.py b/mockredis/tests/test_redis.py index 2dd1b8a..d23b3a1 100644 --- a/mockredis/tests/test_redis.py +++ b/mockredis/tests/test_redis.py @@ -252,3 +252,8 @@ def test_dbsize(self): eq_(1, self.redis.dbsize()) del self.redis["foo"] eq_(0, self.redis.dbsize()) + + def test_randomkey(self): + eq_(None, self.redis.randomkey()) + self.redis["foo"] = "bar" + eq_("foo", self.redis.randomkey()) From 47b67d9cbf53c885d33725750744afc5702fe865 Mon Sep 17 00:00:00 2001 From: Alexey Novikov Date: Mon, 17 Apr 2017 10:27:50 +0300 Subject: [PATCH 2/3] fix dict_keys error --- mockredis/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mockredis/client.py b/mockredis/client.py index ed4bb68..31e53ad 100644 --- a/mockredis/client.py +++ b/mockredis/client.py @@ -1065,7 +1065,7 @@ def randomkey(self): keys = self.redis.keys() if not keys: return None - return choice(keys) + return choice(list(keys)) def srem(self, key, *values): """Emulate srem.""" From ba865f5223b92fe88fb932af1accc00a6b8da468 Mon Sep 17 00:00:00 2001 From: Alexey Novikov Date: Mon, 17 Apr 2017 10:41:18 +0300 Subject: [PATCH 3/3] fix test fail in python3 --- mockredis/tests/test_redis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mockredis/tests/test_redis.py b/mockredis/tests/test_redis.py index d23b3a1..90da5d8 100644 --- a/mockredis/tests/test_redis.py +++ b/mockredis/tests/test_redis.py @@ -256,4 +256,4 @@ def test_dbsize(self): def test_randomkey(self): eq_(None, self.redis.randomkey()) self.redis["foo"] = "bar" - eq_("foo", self.redis.randomkey()) + eq_(b"foo", self.redis.randomkey())