[Zodb-checkins] CVS: Zope/lib/python/BTrees/tests - testBTrees.py:1.31

Toby Dickenson tdickenson@geminidataloggers.com
Fri, 31 May 2002 05:41:10 -0400


Update of /cvs-repository/Zope/lib/python/BTrees/tests
In directory cvs.zope.org:/tmp/cvs-serv18089/tests

Modified Files:
	testBTrees.py 
Log Message:
long overdue merge of toby-cmp-error-branch. btrees no longer ignore exceptions raised by the key comparison function

=== Zope/lib/python/BTrees/tests/testBTrees.py 1.30 => 1.31 ===
         self.t = OIBucket()
 
+# cmp error propagation tests
+
+class DoesntLikeBeingCompared:
+    def __cmp__(self,other):
+        raise ValueError('incomparable')
+
+class TestCmpError(TestCase):
+    def testFoo(self):
+        t = OOBTree()
+        t['hello world'] = None
+        try:
+            t[DoesntLikeBeingCompared()] = None
+        except ValueError,e:
+            assert str(e)=='incomparable'
+        else:
+            raise ValueError('incomarable objects should not be allowed into the tree')
+
 def test_suite():
     TIOBTree = makeSuite(TestIOBTrees, 'test')
     TOOBTree = makeSuite(TestOOBTrees, 'test')
@@ -755,11 +772,13 @@
     TOOBucket = makeSuite(TestOOBuckets, 'test')
     TOIBucket = makeSuite(TestOIBuckets, 'test')
     TIIBucket = makeSuite(TestIIBuckets, 'test')
-    
+
     alltests = TestSuite((TIOSet, TOOSet, TOISet, TIISet,
                           TIOTreeSet, TOOTreeSet, TOITreeSet, TIITreeSet,
                           TIOBucket, TOOBucket, TOIBucket, TIIBucket,
-                          TOOBTree, TIOBTree, TOIBTree, TIIBTree))
+                          TOOBTree, TIOBTree, TOIBTree, TIIBTree,
+                          makeSuite(TestCmpError),
+                         ))
 
     return alltests