lrucache.py 873 B

1234567891011121314151617181920212223242526
  1. from attic.lrucache import LRUCache
  2. from attic.testsuite import AtticTestCase
  3. class LRUCacheTestCase(AtticTestCase):
  4. def test(self):
  5. c = LRUCache(2, dispose=lambda _: None)
  6. self.assert_equal(len(c), 0)
  7. for i, x in enumerate('abc'):
  8. c[x] = i
  9. self.assert_equal(len(c), 2)
  10. self.assert_equal(c.items(), set([('b', 1), ('c', 2)]))
  11. self.assert_equal(False, 'a' in c)
  12. self.assert_equal(True, 'b' in c)
  13. self.assert_raises(KeyError, lambda: c['a'])
  14. self.assert_equal(c['b'], 1)
  15. self.assert_equal(c['c'], 2)
  16. c['d'] = 3
  17. self.assert_equal(len(c), 2)
  18. self.assert_equal(c['c'], 2)
  19. self.assert_equal(c['d'], 3)
  20. del c['c']
  21. self.assert_equal(len(c), 1)
  22. self.assert_raises(KeyError, lambda: c['c'])
  23. self.assert_equal(c['d'], 3)