diff --git a/cachecontrol/caches/redis_cache.py b/cachecontrol/caches/redis_cache.py index 564c30e4..7bcb38a2 100644 --- a/cachecontrol/caches/redis_cache.py +++ b/cachecontrol/caches/redis_cache.py @@ -19,9 +19,11 @@ def get(self, key): def set(self, key, value, expires=None): if not expires: self.conn.set(key, value) - else: + elif isinstance(expires, datetime): expires = expires - datetime.utcnow() self.conn.setex(key, int(expires.total_seconds()), value) + else: + self.conn.setex(key, expires, value) def delete(self, key): self.conn.delete(key) diff --git a/tests/test_storage_redis.py b/tests/test_storage_redis.py index 4646be50..9ada01c6 100644 --- a/tests/test_storage_redis.py +++ b/tests/test_storage_redis.py @@ -14,6 +14,10 @@ def setup(self): self.conn = Mock() self.cache = RedisCache(self.conn) - def test_set_expiration(self): + def test_set_expiration_datetime(self): self.cache.set("foo", "bar", expires=datetime(2014, 2, 2)) assert self.conn.setex.called + + def test_set_expiration_int(self): + self.cache.set("foo", "bar", expires=600) + assert self.conn.setex.called