diff --git a/mockredis/client.py b/mockredis/client.py index 926e048..31e53ad 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(list(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..90da5d8 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_(b"foo", self.redis.randomkey())