Skip to content

Commit

Permalink
fix for lrange should return empty list for a new key.
Browse files Browse the repository at this point in the history
bug:SS-2266
  • Loading branch information
Gaurav Kumar Gupta committed Jul 4, 2013
1 parent 1535d17 commit 0acbe3a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mockredis/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -361,10 +361,12 @@ def lrange(self, key, start, stop):
# Does the set at this key already exist?
if key in self.redis:
# Yes, add this to the list
return map(str, self.redis[key][start:stop + 1 if stop != -1 else None])
return map(str,
self.redis[key][start:stop + 1 if stop != -1 else None])
else:
# No, override the defaultdict's default and create the list
self.redis[key] = list([])
return self.redis[key]

def lindex(self, key, index):
"""Emulate lindex."""
Expand Down
23 changes: 23 additions & 0 deletions mockredis/tests/test_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,26 @@ def test_rpoplpush(self):
self.assertEqual(VAL2, transfer_item)
self.assertEqual([VAL1], self.redis.redis[LIST1])
self.assertEqual([VAL2, VAL3, VAL4], self.redis.redis[LIST2])

def test_lrange(self):
self.assertEqual([], self.redis.lrange(LIST1, 0, 6))
self.assertEqual([], self.redis.lrange(LIST1, 0, -1))
self.redis.lpush(LIST1, VAL1, VAL2, VAL3, VAL4)

"""Cases for returning entire list"""
self.assertEqual([VAL4, VAL3, VAL2, VAL1],
self.redis.lrange(LIST1, 0, 3))
self.assertEqual([VAL4, VAL3, VAL2, VAL1],
self.redis.lrange(LIST1, 0, -1))
self.assertEqual([VAL4, VAL3, VAL2, VAL1],
self.redis.lrange(LIST1, 0, 6))

"""Cases for returning partial list"""
self.assertEqual([VAL4, VAL3],
self.redis.lrange(LIST1, 0, 1))
self.assertEqual([VAL2, VAL1],
self.redis.lrange(LIST1, 2, 3))
self.assertEqual([VAL2, VAL1],
self.redis.lrange(LIST1, 2, -1))
self.assertEqual([VAL3, VAL2],
self.redis.lrange(LIST1, 1, 2))

0 comments on commit 0acbe3a

Please sign in to comment.