X7ROOT File Manager
Current Path:
/opt/gsutil/third_party/cachetools/tests
opt
/
gsutil
/
third_party
/
cachetools
/
tests
/
📁
..
📄
__init__.py
(9.51 KB)
📄
test_cache.py
(148 B)
📄
test_cached.py
(8.19 KB)
📄
test_cachedmethod.py
(6.89 KB)
📄
test_fifo.py
(1.34 KB)
📄
test_func.py
(5.26 KB)
📄
test_keys.py
(4.66 KB)
📄
test_lfu.py
(1.17 KB)
📄
test_lru.py
(1.34 KB)
📄
test_mru.py
(1.87 KB)
📄
test_rr.py
(831 B)
📄
test_tlru.py
(7.96 KB)
📄
test_ttl.py
(5.85 KB)
Editing: test_ttl.py
import math import unittest from cachetools import TTLCache from . import CacheTestMixin class Timer: def __init__(self, auto=False): self.auto = auto self.time = 0 def __call__(self): if self.auto: self.time += 1 return self.time def tick(self): self.time += 1 class TTLTestCache(TTLCache): def __init__(self, maxsize, ttl=math.inf, **kwargs): TTLCache.__init__(self, maxsize, ttl=ttl, timer=Timer(), **kwargs) class TTLCacheTest(unittest.TestCase, CacheTestMixin): Cache = TTLTestCache def test_ttl(self): cache = TTLCache(maxsize=2, ttl=2, timer=Timer()) self.assertEqual(0, cache.timer()) self.assertEqual(2, cache.ttl) cache[1] = 1 self.assertEqual(1, cache[1]) self.assertEqual(1, len(cache)) self.assertEqual({1}, set(cache)) cache.timer.tick() self.assertEqual(1, cache[1]) self.assertEqual(1, len(cache)) self.assertEqual({1}, set(cache)) cache[2] = 2 self.assertEqual(1, cache[1]) self.assertEqual(2, cache[2]) self.assertEqual(2, len(cache)) self.assertEqual({1, 2}, set(cache)) cache.timer.tick() self.assertNotIn(1, cache) self.assertEqual(2, cache[2]) self.assertEqual(1, len(cache)) self.assertEqual({2}, set(cache)) cache[3] = 3 self.assertNotIn(1, cache) self.assertEqual(2, cache[2]) self.assertEqual(3, cache[3]) self.assertEqual(2, len(cache)) self.assertEqual({2, 3}, set(cache)) cache.timer.tick() self.assertNotIn(1, cache) self.assertNotIn(2, cache) self.assertEqual(3, cache[3]) self.assertEqual(1, len(cache)) self.assertEqual({3}, set(cache)) cache.timer.tick() self.assertNotIn(1, cache) self.assertNotIn(2, cache) self.assertNotIn(3, cache) with self.assertRaises(KeyError): del cache[1] with self.assertRaises(KeyError): cache.pop(2) with self.assertRaises(KeyError): del cache[3] self.assertEqual(0, len(cache)) self.assertEqual(set(), set(cache)) def test_ttl_lru(self): cache = TTLCache(maxsize=2, ttl=1, timer=Timer()) cache[1] = 1 cache[2] = 2 cache[3] = 3 self.assertEqual(len(cache), 2) self.assertNotIn(1, cache) self.assertEqual(cache[2], 2) self.assertEqual(cache[3], 3) cache[2] cache[4] = 4 self.assertEqual(len(cache), 2) self.assertNotIn(1, cache) self.assertEqual(cache[2], 2) self.assertNotIn(3, cache) self.assertEqual(cache[4], 4) cache[5] = 5 self.assertEqual(len(cache), 2) self.assertNotIn(1, cache) self.assertNotIn(2, cache) self.assertNotIn(3, cache) self.assertEqual(cache[4], 4) self.assertEqual(cache[5], 5) def test_ttl_expire(self): cache = TTLCache(maxsize=3, ttl=3, timer=Timer()) with cache.timer as time: self.assertEqual(time, cache.timer()) self.assertEqual(3, cache.ttl) cache[1] = 1 cache.timer.tick() cache[2] = 2 cache.timer.tick() cache[3] = 3 self.assertEqual(2, cache.timer()) self.assertEqual({1, 2, 3}, set(cache)) self.assertEqual(3, len(cache)) self.assertEqual(1, cache[1]) self.assertEqual(2, cache[2]) self.assertEqual(3, cache[3]) items = cache.expire() self.assertEqual(set(), set(items)) self.assertEqual({1, 2, 3}, set(cache)) self.assertEqual(3, len(cache)) self.assertEqual(1, cache[1]) self.assertEqual(2, cache[2]) self.assertEqual(3, cache[3]) items = cache.expire(3) self.assertEqual({(1, 1)}, set(items)) self.assertEqual({2, 3}, set(cache)) self.assertEqual(2, len(cache)) self.assertNotIn(1, cache) self.assertEqual(2, cache[2]) self.assertEqual(3, cache[3]) items = cache.expire(4) self.assertEqual({(2, 2)}, set(items)) self.assertEqual({3}, set(cache)) self.assertEqual(1, len(cache)) self.assertNotIn(1, cache) self.assertNotIn(2, cache) self.assertEqual(3, cache[3]) items = cache.expire(5) self.assertEqual({(3, 3)}, set(items)) self.assertEqual(set(), set(cache)) self.assertEqual(0, len(cache)) self.assertNotIn(1, cache) self.assertNotIn(2, cache) self.assertNotIn(3, cache) def test_ttl_atomic(self): cache = TTLCache(maxsize=1, ttl=2, timer=Timer(auto=True)) cache[1] = 1 self.assertEqual(1, cache[1]) cache[1] = 1 self.assertEqual(1, cache.get(1)) cache[1] = 1 self.assertEqual(1, cache.pop(1)) cache[1] = 1 self.assertEqual(1, cache.setdefault(1)) cache[1] = 1 cache.clear() self.assertEqual(0, len(cache)) def test_ttl_tuple_key(self): cache = TTLCache(maxsize=1, ttl=1, timer=Timer()) self.assertEqual(1, cache.ttl) cache[(1, 2, 3)] = 42 self.assertEqual(42, cache[(1, 2, 3)]) cache.timer.tick() with self.assertRaises(KeyError): cache[(1, 2, 3)] self.assertNotIn((1, 2, 3), cache) def test_ttl_datetime(self): from datetime import datetime, timedelta cache = TTLCache(maxsize=1, ttl=timedelta(days=1), timer=datetime.now) cache[1] = 1 self.assertEqual(1, len(cache)) items = cache.expire(datetime.now()) self.assertEqual([], list(items)) self.assertEqual(1, len(cache)) items = cache.expire(datetime.now() + timedelta(days=1)) self.assertEqual([(1, 1)], list(items)) self.assertEqual(0, len(cache))
Upload File
Create Folder