mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 12:26:23 +08:00
ENH: Add zipline.utils.cache.
Implements a `CachedObject` utility class for wrapping cached results with an expiration date.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
from unittest import TestCase
|
||||
|
||||
from pandas import Timestamp, Timedelta
|
||||
|
||||
from zipline.utils.cache import CachedObject, Expired
|
||||
|
||||
|
||||
class CachedObjectTestCase(TestCase):
|
||||
|
||||
def test_cached_object(self):
|
||||
expiry = Timestamp('2014')
|
||||
before = expiry - Timedelta('1 minute')
|
||||
after = expiry + Timedelta('1 minute')
|
||||
|
||||
obj = CachedObject(1, expiry)
|
||||
|
||||
self.assertEqual(obj.unwrap(before), 1)
|
||||
self.assertEqual(obj.unwrap(expiry), 1) # Unwrap on expiry is allowed.
|
||||
with self.assertRaises(Expired) as e:
|
||||
obj.unwrap(after)
|
||||
self.assertEqual(e.exception.args, (expiry,))
|
||||
Reference in New Issue
Block a user