summaryrefslogtreecommitdiff
path: root/tests/server_commands.py
diff options
context:
space:
mode:
authorandy <andy@whiskeymedia.com>2012-10-07 22:14:19 -0700
committerandy <andy@whiskeymedia.com>2012-10-07 22:14:19 -0700
commita8426648791deab1927adbb7b29478f91a18e99b (patch)
treeb139f3de80dc40b4c2eb711bbb6b0702cfccbc71 /tests/server_commands.py
parentb4e0e98e9c94a55fd64e5c38e763ec5a26c47f4e (diff)
downloadredis-py-a8426648791deab1927adbb7b29478f91a18e99b.tar.gz
PEXPIRE/PEXPIREAT/PTTL commands
Diffstat (limited to 'tests/server_commands.py')
-rw-r--r--tests/server_commands.py52
1 files changed, 44 insertions, 8 deletions
diff --git a/tests/server_commands.py b/tests/server_commands.py
index e8f6c7a..19d628a 100644
--- a/tests/server_commands.py
+++ b/tests/server_commands.py
@@ -168,6 +168,19 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertEquals(self.client.persist('a'), True)
self.assertEquals(self.client.ttl('a'), None)
+ def test_expireat(self):
+ expire_at = datetime.datetime.now() + datetime.timedelta(minutes=1)
+ self.assertEquals(self.client.expireat('a', expire_at), False)
+ self.client['a'] = 'foo'
+ # expire at in unix time
+ expire_at_seconds = int(time.mktime(expire_at.timetuple()))
+ self.assertEquals(self.client.expireat('a', expire_at_seconds), True)
+ self.assertEquals(self.client.ttl('a'), 60)
+ # expire at given a datetime object
+ self.client['b'] = 'bar'
+ self.assertEquals(self.client.expireat('b', expire_at), True)
+ self.assertEquals(self.client.ttl('b'), 60)
+
def test_pexpire(self):
version = self.client.info()['redis_version']
if StrictVersion(version) < StrictVersion('2.6.0'):
@@ -178,22 +191,29 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertEquals(self.client.pexpire('a', 10000), False)
self.client['a'] = 'foo'
- self.assertEquals(self.client.expire('a', 10000), True)
- self.assertEquals(self.client.pttl('a'), 10000)
+ self.assertEquals(self.client.pexpire('a', 10000), True)
+ self.assert_(self.client.pttl('a') <= 10000)
self.assertEquals(self.client.persist('a'), True)
self.assertEquals(self.client.pttl('a'), None)
- def test_expireat(self):
+ def test_pexpireat(self):
+ version = self.client.info()['redis_version']
+ if StrictVersion(version) < StrictVersion('2.6.0'):
+ try:
+ raise unittest.SkipTest()
+ except AttributeError:
+ return
+
expire_at = datetime.datetime.now() + datetime.timedelta(minutes=1)
- self.assertEquals(self.client.expireat('a', expire_at), False)
+ self.assertEquals(self.client.pexpireat('a', expire_at), False)
self.client['a'] = 'foo'
- # expire at in unix time
- expire_at_seconds = int(time.mktime(expire_at.timetuple()))
- self.assertEquals(self.client.expireat('a', expire_at_seconds), True)
+ # expire at in unix time (milliseconds)
+ expire_at_seconds = int(time.mktime(expire_at.timetuple())) * 1000
+ self.assertEquals(self.client.pexpireat('a', expire_at_seconds), True)
self.assertEquals(self.client.ttl('a'), 60)
# expire at given a datetime object
self.client['b'] = 'bar'
- self.assertEquals(self.client.expireat('b', expire_at), True)
+ self.assertEquals(self.client.pexpireat('b', expire_at), True)
self.assertEquals(self.client.ttl('b'), 60)
def test_get_set_bit(self):
@@ -1492,6 +1512,22 @@ class ServerCommandsTestCase(unittest.TestCase):
self.assertEquals(client.persist('a'), True)
self.assertEquals(client.ttl('a'), -1)
+ def test_strict_pexpire(self):
+ client = self.get_client(redis.StrictRedis)
+ version = client.info()['redis_version']
+ if StrictVersion(version) < StrictVersion('2.6.0'):
+ try:
+ raise unittest.SkipTest()
+ except AttributeError:
+ return
+
+ self.assertEquals(client.pexpire('a', 10000), False)
+ self.client['a'] = 'foo'
+ self.assertEquals(client.pexpire('a', 10000), True)
+ self.assert_(client.pttl('a') <= 10000)
+ self.assertEquals(client.persist('a'), True)
+ self.assertEquals(client.pttl('a'), -1)
+
## BINARY SAFE
# TODO add more tests
def test_binary_get_set(self):