From 0ee78240ee5d3036382cb89df0e7850db988e1a3 Mon Sep 17 00:00:00 2001 From: Alan Jenkins Date: Fri, 14 Aug 2015 11:59:26 +0100 Subject: [PATCH] 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. --- borg/testsuite/lrucache.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/borg/testsuite/lrucache.py b/borg/testsuite/lrucache.py index ee8de226b..2ad16c532 100644 --- a/borg/testsuite/lrucache.py +++ b/borg/testsuite/lrucache.py @@ -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)