summaryrefslogtreecommitdiff
path: root/tests/server_commands.py
diff options
context:
space:
mode:
authorgeorge yoshida <dynkin@gmail.com>2013-04-27 19:07:19 +0900
committergeorge yoshida <dynkin@gmail.com>2013-04-27 19:07:19 +0900
commit6b894336a0a95f75cef7c243fa712e9befa372a0 (patch)
treecfb44e1187f5f0fdf00fd604eb523470821e37c0 /tests/server_commands.py
parent90ba027e5b79a8bac5f4935863c740e7ca024568 (diff)
downloadredis-py-6b894336a0a95f75cef7c243fa712e9befa372a0.tar.gz
Implement extended set options added in Redis 2.6.12.
SPECS : - http://redis.io/commands/set - https://github.com/antirez/redis/issues/931
Diffstat (limited to 'tests/server_commands.py')
-rw-r--r--tests/server_commands.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/server_commands.py b/tests/server_commands.py
index 0225242..4a48ffb 100644
--- a/tests/server_commands.py
+++ b/tests/server_commands.py
@@ -456,6 +456,42 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertEquals(self.client['a'], b('1'))
self.assertEquals(self.client['b'], b('2'))
+ def test_set_nx(self):
+ self.assertEquals(self.client.set('foo', '1', nx=True), True)
+ self.assertEquals(self.client.set('foo', '2', nx=True), None)
+ self.assertEquals(self.client.get('foo'), b('1'))
+
+ def test_set_xx(self):
+ self.assertEquals(self.client.set('foo', '1', xx=True), None)
+ self.assertEquals(self.client.get('foo'), None)
+ self.client.set('foo', 'bar')
+ self.assertEquals(self.client.set('foo', '2', xx=True), True)
+ self.assertEquals(self.client.get('foo'), b('2'))
+
+ def test_set_px(self):
+ self.assertEquals(self.client.set('foo', '1', px=10000), True)
+ self.assertEquals(self.client['foo'], b('1'))
+ self.assert_(self.client.pttl('foo'), 10000)
+ self.assert_(self.client.ttl('foo'), 10)
+ # expire given a timeelta
+ expire_at = datetime.timedelta(milliseconds=1000)
+ self.assertEquals(self.client.set('foo', '1', px=expire_at), True)
+ self.assert_(self.client.pttl('foo'), 1000)
+ self.assert_(self.client.ttl('foo'), 1)
+
+ def test_set_ex(self):
+ self.assertEquals(self.client.set('foo', '1', ex=10), True)
+ self.assertEquals(self.client.ttl('foo'), 10)
+ # expire given a timeelta
+ expire_at = datetime.timedelta(seconds=60)
+ self.assertEquals(self.client.set('foo', '1', ex=expire_at), True)
+ self.assertEquals(self.client.ttl('foo'), 60)
+
+ def test_set_multipleoptions(self):
+ self.client['foo'] = 'val'
+ self.assertEquals(self.client.set('foo', 'bar', xx=True, px=10000), True)
+ self.assertEquals(self.client.ttl('foo'), 10)
+
def test_setex(self):
self.assertEquals(self.client.setex('a', '1', 60), True)
self.assertEquals(self.client['a'], b('1'))