Skip to content

Commit 083ee5f

Browse files
jponftkem
authored andcommitted
Add clear() tests for TTLCache and TLRUCache.
1 parent 2181fad commit 083ee5f

3 files changed

Lines changed: 42 additions & 2 deletions

File tree

tests/test_lru.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ def test_lru_clear(self):
7272

7373
cache[1] = 1
7474
cache[2] = 2
75-
cache[1] # access to make 1 most recently used
76-
7775
cache.clear()
7876

7977
self.assertEqual(0, len(cache))

tests/test_tlru.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,3 +299,24 @@ def test_ttu_heap_cleanup(self):
299299
expired = cache.expire()
300300
self.assertEqual(4, len(expired))
301301
self.assertEqual(0, len(cache))
302+
303+
def test_tlru_clear(self):
304+
cache = TLRUCache(maxsize=2, ttu=lambda k, v, t: t + 2, timer=Timer())
305+
306+
cache[1] = 1
307+
cache[2] = 2
308+
cache.clear()
309+
310+
self.assertEqual(0, len(cache))
311+
self.assertEqual(0, cache.currsize)
312+
313+
# verify LRU order is reset after clear
314+
cache[3] = 3
315+
cache[4] = 4
316+
cache[3] # access 3 to make it most recently used
317+
cache[5] = 5 # should evict 4 (least recently used)
318+
319+
self.assertEqual(2, len(cache))
320+
self.assertIn(3, cache)
321+
self.assertIn(5, cache)
322+
self.assertNotIn(4, cache)

tests/test_ttl.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,24 @@ def test_ttl_datetime(self):
215215
items = cache.expire(datetime.now() + timedelta(days=1))
216216
self.assertEqual([(1, 1)], list(items))
217217
self.assertEqual(0, len(cache))
218+
219+
def test_ttl_clear(self):
220+
cache = TTLCache(maxsize=2, ttl=2, timer=Timer())
221+
222+
cache[1] = 1
223+
cache[2] = 2
224+
cache.clear()
225+
226+
self.assertEqual(0, len(cache))
227+
self.assertEqual(0, cache.currsize)
228+
229+
# verify LRU order is reset after clear
230+
cache[3] = 3
231+
cache[4] = 4
232+
cache[3] # access 3 to make it most recently used
233+
cache[5] = 5 # should evict 4 (least recently used)
234+
235+
self.assertEqual(2, len(cache))
236+
self.assertIn(3, cache)
237+
self.assertIn(5, cache)
238+
self.assertNotIn(4, cache)

0 commit comments

Comments
 (0)