Skip to content

Commit

Permalink
Merge branch 'rcrdclub-master'
Browse files Browse the repository at this point in the history
Fixes #83.

* rcrdclub-master:
  Add test when neither args nor kwargs are added
  Proper ZADD support - fixes #83
  • Loading branch information
jamesls committed Jun 27, 2015
2 parents e7e0069 + d902ea3 commit b25b440
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
8 changes: 4 additions & 4 deletions fakeredis.py
Original file line number Diff line number Diff line change
Expand Up @@ -1296,10 +1296,10 @@ def zadd(self, name, value=None, score=None, **pairs):
warnings.warn(DeprecationWarning(
"Passing 'value' and 'score' has been deprecated. "
"Please pass via kwargs instead."))
else:
value = list(pairs)[0]
score = list(pairs.values())[0]
self._db.setdefault(name, _ZSet())[value] = score
pairs = {value: score}
elif not pairs:
raise redis.RedisError("ZADD is missing kwargs param")
return super(FakeRedis, self).zadd(name, **pairs)


class FakePipeline(object):
Expand Down
13 changes: 11 additions & 2 deletions test_fakeredis.py
Original file line number Diff line number Diff line change
Expand Up @@ -1825,7 +1825,8 @@ def test_lrem_return_value(self):
self.assertEqual(self.redis.lrem('foo', 'one'), 0)

def test_zadd_deprecated(self):
self.redis.zadd('foo', 'one', 1)
result = self.redis.zadd('foo', 'one', 1)
self.assertEqual(result, 1)
self.assertEqual(self.redis.zrange('foo', 0, -1), [b'one'])

def test_zadd_missing_required_params(self):
Expand All @@ -1835,11 +1836,19 @@ def test_zadd_missing_required_params(self):
with self.assertRaises(redis.RedisError):
# Missing the 'value' param.
self.redis.zadd('foo', None, score=1)
with self.assertRaises(redis.RedisError):
self.redis.zadd('foo')

def test_zadd_with_single_keypair(self):
self.redis.zadd('foo', bar=1)
result = self.redis.zadd('foo', bar=1)
self.assertEqual(result, 1)
self.assertEqual(self.redis.zrange('foo', 0, -1), [b'bar'])

def test_zadd_with_multiple_keypairs(self):
result = self.redis.zadd('foo', bar=1, baz=9)
self.assertEqual(result, 2)
self.assertEqual(self.redis.zrange('foo', 0, -1), [b'bar', b'baz'])

def test_set_nx_doesnt_set_value_twice(self):
self.assertEqual(self.redis.set('foo', 'bar', nx=True), True)
self.assertEqual(self.redis.set('foo', 'bar', nx=True), None)
Expand Down

0 comments on commit b25b440

Please sign in to comment.