diff options
author | george yoshida <dynkin@gmail.com> | 2013-04-27 19:07:19 +0900 |
---|---|---|
committer | george yoshida <dynkin@gmail.com> | 2013-04-27 19:07:19 +0900 |
commit | 6b894336a0a95f75cef7c243fa712e9befa372a0 (patch) | |
tree | cfb44e1187f5f0fdf00fd604eb523470821e37c0 /tests/server_commands.py | |
parent | 90ba027e5b79a8bac5f4935863c740e7ca024568 (diff) | |
download | redis-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.py | 36 |
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')) |