summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy McCurdy <andy@andymccurdy.com>2010-03-04 11:17:34 -0800
committerAndy McCurdy <andy@andymccurdy.com>2010-03-04 11:17:34 -0800
commit800720c7bd07c31511239df27d512e98d757e945 (patch)
tree5aafd374a1b7fcb62f6831b0c2e73b822467b815
parent084d1d6f3342d4cbeeb1dd2a5f0da462628fb006 (diff)
parentc3b3c1bc93849b4c3fc23dc7105984411b20c4d8 (diff)
downloadredis-py-800720c7bd07c31511239df27d512e98d757e945.tar.gz
Merge remote branch 'tabo/master'
-rw-r--r--redis/client.py8
-rw-r--r--tests/server_commands.py12
2 files changed, 15 insertions, 5 deletions
diff --git a/redis/client.py b/redis/client.py
index 5b2e1b4..fe38909 100644
--- a/redis/client.py
+++ b/redis/client.py
@@ -153,7 +153,6 @@ class Redis(object):
Connection and Pipeline derive from this, implementing how
the commands are sent and received to the Redis server
"""
-
RESPONSE_CALLBACKS = dict_merge(
string_keys_to_dict(
'AUTH DEL EXISTS EXPIRE MOVE MSETNX RENAMENX SADD SISMEMBER SMOVE '
@@ -165,9 +164,14 @@ class Redis(object):
'ZCARD ZREMRANGEBYSCORE',
int
),
+ string_keys_to_dict(
+ # these return OK, or int if redis-server is >=1.3.4
+ 'LPUSH RPUSH',
+ lambda r: isinstance(r, int) and r or r == 'OK'
+ ),
string_keys_to_dict('ZSCORE ZINCRBY', float),
string_keys_to_dict(
- 'FLUSHALL FLUSHDB LPUSH LSET LTRIM MSET RENAME RPUSH '
+ 'FLUSHALL FLUSHDB LSET LTRIM MSET RENAME '
'SAVE SELECT SET SHUTDOWN',
lambda r: r == 'OK'
),
diff --git a/tests/server_commands.py b/tests/server_commands.py
index 2d9c707..a245856 100644
--- a/tests/server_commands.py
+++ b/tests/server_commands.py
@@ -1,6 +1,7 @@
import redis
import unittest
import datetime
+from distutils.version import StrictVersion
class ServerCommandsTestCase(unittest.TestCase):
@@ -237,8 +238,13 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertRaises(redis.ResponseError, self.client.lpush, 'a', 'a')
del self.client['a']
# real logic
- self.assert_(self.client.lpush('a', 'b'))
- self.assert_(self.client.lpush('a', 'a'))
+ version = self.client.info()['redis_version']
+ if StrictVersion(version) >= StrictVersion('1.3.4'):
+ self.assertEqual(1, self.client.lpush('a', 'b'))
+ self.assertEqual(2, self.client.lpush('a', 'a'))
+ else:
+ self.assert_(self.client.lpush('a', 'b'))
+ self.assert_(self.client.lpush('a', 'a'))
self.assertEquals(self.client.lindex('a', 0), 'a')
self.assertEquals(self.client.lindex('a', 1), 'b')
@@ -715,4 +721,4 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertEquals(num, 4)
self.assertEquals(self.client.lrange('sorted', 0, 10),
['vodka', 'milk', 'gin', 'apple juice'])
- \ No newline at end of file
+