[Checkins] SVN: BTrees/branches/pure_python/ Coverage for BTrees.check.crack_btree.
Tres Seaver
cvs-admin at zope.org
Tue Dec 4 22:14:37 UTC 2012
Log message for revision 128527:
Coverage for BTrees.check.crack_btree.
Changed:
_U BTrees/branches/pure_python/
U BTrees/branches/pure_python/BTrees/tests/test_check.py
-=-
Modified: BTrees/branches/pure_python/BTrees/tests/test_check.py
===================================================================
--- BTrees/branches/pure_python/BTrees/tests/test_check.py 2012-12-04 22:14:35 UTC (rev 128526)
+++ BTrees/branches/pure_python/BTrees/tests/test_check.py 2012-12-04 22:14:37 UTC (rev 128527)
@@ -54,6 +54,45 @@
self.assertFalse(is_mapping)
+class Test_crack_btree(unittest.TestCase):
+
+ def _callFUT(self, obj, is_mapping):
+ from BTrees.check import crack_btree
+ return crack_btree(obj, is_mapping)
+
+ def test_w_empty_tree(self):
+ from BTrees.check import BTREE_EMPTY
+ class Empty(object):
+ def __getstate__(self):
+ return None
+ kind, keys, kids = self._callFUT(Empty(), True)
+ self.assertEqual(kind, BTREE_EMPTY)
+ self.assertEqual(keys, [])
+ self.assertEqual(kids, [])
+
+ def test_w_degenerate_tree(self):
+ from BTrees.check import BTREE_ONE
+ class Degenerate(object):
+ def __getstate__(self):
+ return ((('a', 1, 'b', 2),),)
+ kind, keys, kids = self._callFUT(Degenerate(), True)
+ self.assertEqual(kind, BTREE_ONE)
+ self.assertEqual(keys, ('a', 1, 'b', 2))
+ self.assertEqual(kids, None)
+
+ def test_w_normal_tree(self):
+ from BTrees.check import BTREE_NORMAL
+ first_bucket = [object()] * 8
+ second_bucket = [object()] * 8
+ class Normal(object):
+ def __getstate__(self):
+ return ((first_bucket, 'b', second_bucket), first_bucket)
+ kind, keys, kids = self._callFUT(Normal(), True)
+ self.assertEqual(kind, BTREE_NORMAL)
+ self.assertEqual(keys, ['b'])
+ self.assertEqual(kids, [first_bucket, second_bucket])
+
+
class Test_check(unittest.TestCase):
def _callFUT(self, tree):
@@ -138,8 +177,20 @@
self.fail("expected check(tree) to catch the problem")
+class Test_helpers(unittest.TestCase):
+
+ def test_type_and_adr_w_oid(self):
+ from BTrees.check import type_and_adr
+ class WOid(object):
+ _p_oid = 'DEADBEEF'
+ t_and_a = type_and_adr(WOid())
+ self.assertTrue(t_and_a.startswith('WOid'))
+
+
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(Test_classify),
+ unittest.makeSuite(Test_crack_btree),
unittest.makeSuite(Test_check),
+ unittest.makeSuite(Test_helpers),
))
More information about the checkins
mailing list