[Zope-Checkins] CVS: Zope3/lib/python/Persistence/BTrees/tests - testBTrees.py:1.8

Tim Peters tim.one@comcast.net
Thu, 13 Jun 2002 15:19:10 -0400


Update of /cvs-repository/Zope3/lib/python/Persistence/BTrees/tests
In directory cvs.zope.org:/tmp/cvs-serv17685/tests

Modified Files:
	testBTrees.py 
Log Message:
Bucket_rangeSearch():  If the min key passed in was larger than the max key
passed in, it was quite possible for this to return *low > *high, and the
caller could crash due to trying to create a list with "negative length".
Changed the routine to consider a range empty if min>max on input, and added
test cases that fail before this patch.


=== Zope3/lib/python/Persistence/BTrees/tests/testBTrees.py 1.7 => 1.8 ===
 
     def testEmptyRangeSearches(self):
-        t=self.t
-        t.update([(1,1),(5,5),(9,9)])
-        self.assertEqual(list(t.keys(-6,-4)),[], list(t.keys(-6,-4)))
-        self.assertEqual(list(t.keys(2,4)),[], list(t.keys(2,4)))
-        self.assertEqual(list(t.keys(6,8)),[], list(t.keys(6,8)))
-        self.assertEqual(list(t.keys(10,12)),[], list(t.keys(10,12)))
+        t = self.t
+        t.update([(1,1), (5,5), (9,9)])
+        self.assertEqual(list(t.keys(-6,-4)), [], list(t.keys(-6,-4)))
+        self.assertEqual(list(t.keys(2,4)), [], list(t.keys(2,4)))
+        self.assertEqual(list(t.keys(6,8)), [], list(t.keys(6,8)))
+        self.assertEqual(list(t.keys(10,12)), [], list(t.keys(10,12)))
+        self.assertEqual(list(t.keys(9, 1)), [], list(t.keys(9, 1)))
 
     def testSlicing(self):
         # Test that slicing of .keys()/.values()/.items() works exactly the
@@ -430,12 +431,13 @@
         self.assertEqual(list(self.t.keys()) , items)
 
     def testEmptyRangeSearches(self):
-        t=self.t
-        t.update([1,5,9])
-        self.assertEqual(list(t.keys(-6,-4)),[], list(t.keys(-6,-4)))
-        self.assertEqual(list(t.keys(2,4)),[], list(t.keys(2,4)))
-        self.assertEqual(list(t.keys(6,8)),[], list(t.keys(6,8)))
-        self.assertEqual(list(t.keys(10,12)),[], list(t.keys(10,12)))
+        t = self.t
+        t.update([1, 5, 9])
+        self.assertEqual(list(t.keys(-6,-4)), [], list(t.keys(-6,-4)))
+        self.assertEqual(list(t.keys(2,4)), [], list(t.keys(2,4)))
+        self.assertEqual(list(t.keys(6,8)), [], list(t.keys(6,8)))
+        self.assertEqual(list(t.keys(10,12)), [], list(t.keys(10,12)))
+        self.assertEqual(list(t.keys(9,1)), [], list(t.keys(9,1)))
 
     def testSlicing(self):
         # Test that slicing of .keys() works exactly the same way as slicing