57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
import unittest
|
|
|
|
from overviewer_core import cache
|
|
|
|
class TestLRU(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.lru = cache.LRUCache(size=5)
|
|
|
|
def test_single_insert(self):
|
|
self.lru[1] = 2
|
|
self.assertEqual(self.lru[1], 2)
|
|
|
|
def test_multiple_insert(self):
|
|
self.lru[1] = 2
|
|
self.lru[3] = 4
|
|
self.lru[5] = 6
|
|
self.assertEqual(self.lru[1], 2)
|
|
self.assertEqual(self.lru[3], 4)
|
|
self.assertEqual(self.lru[5], 6)
|
|
|
|
def test_full(self):
|
|
self.lru[1] = 'asdf'
|
|
self.lru[2] = 'asdf'
|
|
self.lru[3] = 'asdf'
|
|
self.lru[4] = 'asdf'
|
|
self.lru[5] = 'asdf'
|
|
self.lru[6] = 'asdf'
|
|
self.assertRaises(KeyError, self.lru.__getitem__, 1)
|
|
self.assertEqual(self.lru[2], 'asdf')
|
|
self.assertEqual(self.lru[3], 'asdf')
|
|
self.assertEqual(self.lru[4], 'asdf')
|
|
self.assertEqual(self.lru[5], 'asdf')
|
|
self.assertEqual(self.lru[6], 'asdf')
|
|
|
|
def test_lru(self):
|
|
self.lru[1] = 'asdf'
|
|
self.lru[2] = 'asdf'
|
|
self.lru[3] = 'asdf'
|
|
self.lru[4] = 'asdf'
|
|
self.lru[5] = 'asdf'
|
|
|
|
self.assertEqual(self.lru[1], 'asdf')
|
|
self.assertEqual(self.lru[2], 'asdf')
|
|
self.assertEqual(self.lru[4], 'asdf')
|
|
self.assertEqual(self.lru[5], 'asdf')
|
|
|
|
# 3 should be evicted now
|
|
self.lru[6] = 'asdf'
|
|
|
|
self.assertRaises(KeyError, self.lru.__getitem__, 3)
|
|
self.assertEqual(self.lru[1], 'asdf')
|
|
self.assertEqual(self.lru[2], 'asdf')
|
|
self.assertEqual(self.lru[4], 'asdf')
|
|
self.assertEqual(self.lru[5], 'asdf')
|
|
self.assertEqual(self.lru[6], 'asdf')
|