[Checkins] SVN: BTrees/branches/pure_python/ Coverage for TreeSet.

Tres Seaver cvs-admin at zope.org
Mon Nov 19 21:27:39 UTC 2012


Log message for revision 128362:
  Coverage for TreeSet.

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:37 UTC (rev 128361)
+++ BTrees/branches/pure_python/BTrees/tests/test__base.py	2012-11-19 21:27:38 UTC (rev 128362)
@@ -2347,6 +2347,69 @@
         self.assertEqual(tree['a'], 0)
 
 
+class TreeSetTests(unittest.TestCase):
+
+    assertRaises = _assertRaises
+
+    def _getTargetClass(self):
+        from .._base import TreeSet
+        return TreeSet
+
+    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_add_new_key(self):
+        _set = self._makeOne()
+        self.assertTrue(_set.add('a'))
+        self.assertTrue('a' in _set)
+
+    def test_add_existing_key(self):
+        _set = self._makeOne()
+        _set.add('a')
+        self.assertFalse(_set.add('a'))
+
+    def test_remove_miss(self):
+        _set = self._makeOne()
+        self.assertRaises(KeyError, _set.remove, 'a')
+
+    def test_remove_hit(self):
+        _set = self._makeOne()
+        _set.add('a')
+        self.assertEqual(_set.remove('a'), None)
+        self.assertFalse('a' in _set)
+
+    def test_update_empty_sequence(self):
+        _set = self._makeOne()
+        _set.update(())
+        self.assertEqual(len(_set), 0)
+
+    def test_update_simple_sequence(self):
+        _set = self._makeOne()
+        LETTERS = 'abcdefghijklmnopqrstuvwxyz'
+        _set.update(LETTERS)
+        self.assertEqual(len(_set), len(LETTERS))
+        for letter in LETTERS:
+            self.assertTrue(letter in _set)
+
+    def test_update_mppaing(self):
+        _set = self._makeOne()
+        LETTERS = 'abcdefghijklmnopqrstuvwxyz'
+        a_dict = dict([(y, x) for x, y in enumerate(LETTERS)])
+        _set.update(a_dict)
+        self.assertEqual(len(_set), len(LETTERS))
+        for letter in LETTERS:
+            self.assertTrue(letter in _set)
+
+
 class _Jar(object):
     def __init__(self):
         self._current = set()
@@ -2367,4 +2430,5 @@
         unittest.makeSuite(Test_Tree),
         unittest.makeSuite(Test_TreeItems),
         unittest.makeSuite(TreeTests),
+        unittest.makeSuite(TreeSetTests),
     ))



More information about the checkins mailing list