import time
import unittest
from bitshares import BitShares, exceptions
from bitshares.instance import set_shared_bitshares_instance
from bitshares.blockchainobject import ObjectCache
class Testcases(unittest.TestCase):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.bts = BitShares(
nobroadcast=True,
)
set_shared_bitshares_instance(self.bts)
def test_cache(self):
cache = ObjectCache(default_expiration=1)
self.assertEqual(str(cache), "ObjectCache(n=0, default_expiration=1)")
# Data
cache["foo"] = "bar"
self.assertIn("foo", cache)
self.assertEqual(cache["foo"], "bar")
self.assertEqual(cache.get("foo", "New"), "bar")
# Expiration
time.sleep(2)
self.assertNotIn("foo", cache)
# Get
self.assertEqual(cache.get("foo", "New"), "New")