]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/bloom.py
Check that all context managed objects are properly closed
[bup.git] / lib / bup / bloom.py
index 97024b90f7da67def21e0296124ea653769392ed..b686127f294026911f442a8ff4ac7cbcd62a011b 100644 (file)
@@ -107,6 +107,7 @@ bloom_add = _helpers.bloom_add
 class ShaBloom:
     """Wrapper which contains data from multiple index files. """
     def __init__(self, filename, f=None, readwrite=False, expected=-1):
+        self.closed = False
         self.name = filename
         self.readwrite = readwrite
         self.file = None
@@ -183,6 +184,7 @@ class ShaBloom:
         return self.map and self.bits
 
     def close(self):
+        self.closed = True
         try:
             if self.map and self.readwrite:
                 debug2("bloom: closing with %d entries\n" % self.entries)
@@ -198,6 +200,9 @@ class ShaBloom:
         finally:  # This won't handle pending exceptions correctly in py2
             self._init_failed()
 
+    def __del__(self):
+        assert self.closed
+
     def __enter__(self):
         return self