[Checkins] SVN: BTrees/branches/pure_python/ Coverage for _TreeItems.
Tres Seaver
cvs-admin at zope.org
Mon Nov 19 21:27:37 UTC 2012
Log message for revision 128360:
Coverage for _TreeItems.
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:33 UTC (rev 128359)
+++ BTrees/branches/pure_python/BTrees/tests/test__base.py 2012-11-19 21:27:36 UTC (rev 128360)
@@ -2132,6 +2132,88 @@
self.assertEqual(resolved, (((('a', 'b', 'e', 'f'),),),))
+class Test_TreeItems(unittest.TestCase):
+
+ assertRaises = _assertRaises
+
+ def _getTargetClass(self):
+ from .._base import _TreeItems
+ return _TreeItems
+
+ def _makeOne(self, firstbucket, itertype, iterargs):
+ return self._getTargetClass()(firstbucket, itertype, iterargs)
+
+ def _makeBucket(self, items=None):
+ from .._base import Bucket
+ class _Bucket(Bucket):
+ MAX_SIZE = 10
+ def _to_key(self, k):
+ return k
+ return _Bucket(items)
+
+ def test___getitem___w_slice(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ self.assertEqual(list(ti[0:3]), ['a', 'b', 'c'])
+
+ def test___getitem___w_negative_index_le_minus_length(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ def _should_error():
+ return ti[-27]
+ self.assertRaises(IndexError, _should_error)
+
+ def test___getitem___w_index_gt_length(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ def _should_error():
+ return ti[27]
+ self.assertRaises(IndexError, _should_error)
+
+ def test___getitem___w_index_smaller_than_cursor(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ ti[12]
+ self.assertEqual(ti[1], 'b')
+
+ def test___len__(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ self.assertEqual(len(ti), 26)
+ # short-circuit on second pass
+ self.assertEqual(len(ti), 26)
+
+ def test___iter___w_iterkeys(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iterkeys', ())
+ self.assertEqual(list(ti), [x[0] for x in ITEMS])
+
+ def test___iter___w_iteritems(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'iteritems', ())
+ self.assertEqual(list(ti), ITEMS)
+
+ def test___iter___w_itervalues(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket = self._makeBucket(ITEMS)
+ ti = self._makeOne(bucket, 'itervalues', ())
+ self.assertEqual(list(ti), [x[1] for x in ITEMS])
+
+ def test___iter___w_empty_last_bucket(self):
+ ITEMS = [(y, x) for x, y in enumerate('abcdefghijklmnopqrstuvwxyz')]
+ bucket1 = self._makeBucket(ITEMS)
+ bucket2 = bucket1._next = self._makeBucket()
+ ti = self._makeOne(bucket1, 'iterkeys', ())
+ self.assertEqual(list(ti), [x[0] for x in ITEMS])
+
+
class _Jar(object):
def __init__(self):
self._current = set()
@@ -2150,4 +2232,5 @@
unittest.makeSuite(SetTests),
unittest.makeSuite(Test_TreeItem),
unittest.makeSuite(Test_Tree),
+ unittest.makeSuite(Test_TreeItems),
))
More information about the checkins
mailing list