瀏覽代碼

hashindex_pytest.py: factor out verify_hash_table

Dan Christensen 2 年之前
父節點
當前提交
133ffebc8d
共有 1 個文件被更改,包括 12 次插入11 次删除
  1. 12 11
      src/borg/testsuite/hashindex_pytest.py

+ 12 - 11
src/borg/testsuite/hashindex_pytest.py

@@ -8,6 +8,15 @@ import pytest
 from ..hashindex import NSIndex
 
 
+def verify_hash_table(kv, idx):
+    """kv should be a python dictionary and idx an NSIndex.  Check that idx
+    has the expected entries and the right number of entries.
+    """
+    for k, v in kv.items():
+        assert k in idx and idx[k] == (v, v, v)
+    assert len(idx) == len(kv)
+
+
 def make_hashtables(*, entries, loops):
     idx = NSIndex()
     kv = {}
@@ -23,11 +32,7 @@ def make_hashtables(*, entries, loops):
         for k in delete_keys:
             v = kv.pop(k)
             assert idx.pop(k) == (v, v, v)
-        # check if remaining entries are as expected
-        for k, v in kv.items():
-            assert idx[k] == (v, v, v)
-        # check entry count
-        assert len(kv) == len(idx)
+        verify_hash_table(kv, idx)
     return idx, kv
 
 
@@ -53,9 +58,7 @@ def test_hashindex_compact():
     assert saved_space > 0
     assert size_noncompact - size_compact == saved_space
     # did we lose anything?
-    for k, v in kv.items():
-        assert k in idx and idx[k] == (v, v, v)
-    assert len(idx) == len(kv)
+    verify_hash_table(kv, idx)
     # now expand the hashtable again. trigger a resize/rebuild by adding an entry.
     k = b"x" * 32
     idx[k] = (0, 0, 0)
@@ -63,6 +66,4 @@ def test_hashindex_compact():
     size_rebuilt = idx.size()
     assert size_rebuilt > size_compact + 1
     # did we lose anything?
-    for k, v in kv.items():
-        assert k in idx and idx[k] == (v, v, v)
-    assert len(idx) == len(kv)
+    verify_hash_table(kv, idx)