]> arthur.ath.cx Git - bup.git/blobdiff - test/int/test_bloom.py
ShaBloom.__del__: replace with context management
[bup.git] / test / int / test_bloom.py
index 5f75d7e6f1e70252843674b064796a4a51552f47..4169227cb07b84ced1783eda8b04cc95b511cd1a 100644 (file)
@@ -14,26 +14,25 @@ def test_bloom(tmpdir):
     ix.name = b'dummy.idx'
     ix.shatable = b''.join(hashes)
     for k in (4, 5):
-        b = bloom.create(tmpdir + b'/pybuptest.bloom', expected=100, k=k)
-        b.add_idx(ix)
-        assert b.pfalse_positive() < .1
-        b.close()
-        b = bloom.ShaBloom(tmpdir + b'/pybuptest.bloom')
-        all_present = True
-        for h in hashes:
-            all_present &= (b.exists(h) or False)
-        assert all_present
-        false_positives = 0
-        for h in [os.urandom(20) for i in range(1000)]:
-            if b.exists(h):
-                false_positives += 1
-        assert false_positives < 5
+        with bloom.create(tmpdir + b'/pybuptest.bloom', expected=100, k=k) as b:
+            b.add_idx(ix)
+            assert b.pfalse_positive() < .1
+        with bloom.ShaBloom(tmpdir + b'/pybuptest.bloom') as b:
+            all_present = True
+            for h in hashes:
+                all_present &= (b.exists(h) or False)
+            assert all_present
+            false_positives = 0
+            for h in [os.urandom(20) for i in range(1000)]:
+                if b.exists(h):
+                    false_positives += 1
+            assert false_positives < 5
         os.unlink(tmpdir + b'/pybuptest.bloom')
 
     tf = tempfile.TemporaryFile(dir=tmpdir)
-    b = bloom.create(b'bup.bloom', f=tf, expected=100)
-    assert b.rwfile == tf
-    assert b.k == 5
+    with bloom.create(b'bup.bloom', f=tf, expected=100) as b:
+        assert b.file == tf
+        assert b.k == 5
 
     # Test large (~1GiB) filter.  This may fail on s390 (31-bit
     # architecture), and anywhere else where the address space is
@@ -41,9 +40,9 @@ def test_bloom(tmpdir):
     tf = tempfile.TemporaryFile(dir=tmpdir)
     skip_test = False
     try:
-        b = bloom.create(b'bup.bloom', f=tf, expected=2**28,
-                         delaywrite=False)
-        assert b.k == 4
+        with bloom.create(b'bup.bloom', f=tf, expected=2**28,
+                          delaywrite=False) as b:
+            assert b.k == 4
     except EnvironmentError as ex:
         (ptr_width, linkage) = platform.architecture()
         if ptr_width == '32bit' and ex.errno == errno.ENOMEM: