[Checkins] SVN: BTrees/branches/pure_python/ Coverage for Tree.
Tres Seaver
cvs-admin at zope.org
Mon Nov 19 21:27:38 UTC 2012
Log message for revision 128361:
Coverage for Tree.
Changed:
_U BTrees/branches/pure_python/
U BTrees/branches/pure_python/BTrees/tests/test__base.py
-=-
Modified: BTrees/branches/pure_python/BTrees/tests/test__base.py
===================================================================
--- BTrees/branches/pure_python/BTrees/tests/test__base.py 2012-11-19 21:27:36 UTC (rev 128360)
+++ BTrees/branches/pure_python/BTrees/tests/test__base.py 2012-11-19 21:27:37 UTC (rev 128361)
@@ -1026,18 +1026,6 @@
from .._base import Set
return Set
- def _makeOneXXX(self):
- class _TestSet(self._getTargetClass()):
- def __setstate__(self, state):
- self._keys, self._next = state
- def clear(self):
- self._keys, self._next = [], None
- def __len__(self):
- return len(self._keys)
- def __iter__(self):
- return iter(self._keys)
- return _TestSet()
-
def _makeOne(self):
class _Set(self._getTargetClass()):
def _to_key(self, x):
@@ -2214,6 +2202,151 @@
self.assertEqual(list(ti), [x[0] for x in ITEMS])
+class TreeTests(unittest.TestCase):
+
+ assertRaises = _assertRaises
+
+ def _getTargetClass(self):
+ from .._base import Tree
+ return Tree
+
+ def _makeOne(self, items=None):
+ from .._base import Bucket
+ class _Bucket(Bucket):
+ MAX_SIZE = 10
+ def _to_key(self, k):
+ return k
+ class _Test(self._getTargetClass()):
+ _to_key = _to_value = lambda self, x: x
+ _bucket_type = _Bucket
+ MAX_SIZE = 15
+ return _Test(items)
+
+ def test_get_empty_miss(self):
+ tree = self._makeOne()
+ self.assertEqual(tree.get('nonesuch'), None)
+
+ def test_get_empty_miss_w_default(self):
+ DEFAULT = object()
+ tree = self._makeOne()
+ self.assertTrue(tree.get('nonesuch', DEFAULT) is DEFAULT)
+
+ def test_get_filled_miss(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(tree.get('nonesuch'), None)
+
+ def test_get_filled_miss_w_default(self):
+ DEFAULT = object()
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertTrue(tree.get('nonesuch', DEFAULT) is DEFAULT)
+
+ def test_get_filled_hit(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(tree.get('a'), 0)
+
+ def test___getitem___empty_miss(self):
+ tree = self._makeOne()
+ def _should_error():
+ return tree['nonesuch']
+ self.assertRaises(KeyError, _should_error)
+
+ def test___getitem___filled_miss(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ def _should_error():
+ return tree['nonesuch']
+ self.assertRaises(KeyError, _should_error)
+
+ def test___getitem___filled_hit(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(tree['a'], 0)
+
+ def test_values_empty_no_args(self):
+ tree = self._makeOne()
+ self.assertEqual(list(tree.values()), [])
+
+ def test_values_filled_no_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.values()), range(26))
+
+ def test_values_filled_w_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.values(min='b', excludemin=True,
+ max='f', excludemax=True)),
+ [2, 3, 4])
+
+ def test_itervalues_empty_no_args(self):
+ tree = self._makeOne()
+ self.assertEqual(list(tree.itervalues()), [])
+
+ def test_itervalues_filled_no_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.itervalues()), range(26))
+
+ def test_itervalues_filled_w_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.itervalues(min='b', excludemin=True,
+ max='f', excludemax=True)),
+ [2, 3, 4])
+
+ def test_items_empty_no_args(self):
+ tree = self._makeOne()
+ self.assertEqual(list(tree.items()), [])
+
+ def test_items_filled_no_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.items()), ITEMS)
+
+ def test_items_filled_w_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.items(min='b', excludemin=True,
+ max='f', excludemax=True)),
+ ITEMS[2:5])
+
+ def test_iteritems_empty_no_args(self):
+ tree = self._makeOne()
+ self.assertEqual(list(tree.iteritems()), [])
+
+ def test_iteritems_filled_no_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.iteritems()), ITEMS)
+
+ def test_iteritems_filled_w_args(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.iteritems(min='b', excludemin=True,
+ max='f', excludemax=True)),
+ ITEMS[2:5])
+
+ def test_byValue(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertEqual(list(tree.byValue(min=22)),
+ [(y, x) for x, y in ITEMS[22:]])
+
+ def test_insert_new_key(self):
+ tree = self._makeOne()
+ self.assertTrue(tree.insert('a', 0))
+ self.assertEqual(tree['a'], 0)
+
+ def test_insert_would_change_key(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ tree = self._makeOne(ITEMS)
+ self.assertFalse(tree.insert('a', 1))
+ self.assertEqual(tree['a'], 0)
+
+
class _Jar(object):
def __init__(self):
self._current = set()
@@ -2233,4 +2366,5 @@
unittest.makeSuite(Test_TreeItem),
unittest.makeSuite(Test_Tree),
unittest.makeSuite(Test_TreeItems),
+ unittest.makeSuite(TreeTests),
))
More information about the checkins
mailing list