lrucache: test added code

Tests saved my butt, so I'd better contribute :).

These tests have been tested - substituting a null dispose function
causes an immediate failure.
This commit is contained in:
Alan Jenkins 2015-08-14 11:59:26 +01:00
parent 5e0013c5db
commit 0ee78240ee
1 changed files with 23 additions and 0 deletions

View File

@ -1,5 +1,6 @@
from ..lrucache import LRUCache
from . import BaseTestCase
from tempfile import TemporaryFile
class LRUCacheTestCase(BaseTestCase):
@ -24,3 +25,25 @@ class LRUCacheTestCase(BaseTestCase):
self.assert_equal(len(c), 1)
self.assert_raises(KeyError, lambda: c['c'])
self.assert_equal(c['d'], 3)
c.clear()
self.assert_equal(c.items(), set())
def test_dispose(self):
c = LRUCache(2, dispose=lambda f: f.close())
f1 = TemporaryFile()
f2 = TemporaryFile()
f3 = TemporaryFile()
c[1] = f1
c[2] = f2
self.assert_equal(False, f2.closed)
c[3] = f3
self.assert_equal(False, 1 in c)
self.assert_equal(True, f1.closed)
self.assert_equal(True, 2 in c)
self.assert_equal(False, f2.closed)
del c[2]
self.assert_equal(False, 2 in c)
self.assert_equal(True, f2.closed)
c.clear()
self.assert_equal(c.items(), set())
self.assert_equal(True, f3.closed)