[Checkins] SVN: Products.ZCatalog/trunk/ fix calculation of 2nd-half batch ranges

David Glick davidglick at onenw.org
Mon Aug 22 15:46:35 EDT 2011


Log message for revision 122666:
  fix calculation of 2nd-half batch ranges

Changed:
  U   Products.ZCatalog/trunk/CHANGES.txt
  U   Products.ZCatalog/trunk/src/Products/ZCatalog/Catalog.py
  U   Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_catalog.py

-=-
Modified: Products.ZCatalog/trunk/CHANGES.txt
===================================================================
--- Products.ZCatalog/trunk/CHANGES.txt	2011-08-22 17:16:52 UTC (rev 122665)
+++ Products.ZCatalog/trunk/CHANGES.txt	2011-08-22 19:46:35 UTC (rev 122666)
@@ -4,6 +4,8 @@
 2.13.20 (unreleased)
 --------------------
 
+- Fixed incorrect calculation of batches in the second half of the resultset
+  in sortResults.
 
 2.13.19 (2011-08-20)
 --------------------

Modified: Products.ZCatalog/trunk/src/Products/ZCatalog/Catalog.py
===================================================================
--- Products.ZCatalog/trunk/src/Products/ZCatalog/Catalog.py	2011-08-22 17:16:52 UTC (rev 122665)
+++ Products.ZCatalog/trunk/src/Products/ZCatalog/Catalog.py	2011-08-22 19:46:35 UTC (rev 122666)
@@ -708,7 +708,7 @@
                     b_size += overrun
                 b_start = 0
             else:
-                b_start = b_end - b_start
+                b_start = rlen - b_end
             limit = b_start + b_size
 
         if merge and limit is None and (

Modified: Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_catalog.py
===================================================================
--- Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_catalog.py	2011-08-22 17:16:52 UTC (rev 122665)
+++ Products.ZCatalog/trunk/src/Products/ZCatalog/tests/test_catalog.py	2011-08-22 19:46:35 UTC (rev 122666)
@@ -366,6 +366,12 @@
         result = self._catalog(query)
         self.assertEqual(result.actual_result_count, 100)
         self.assertEqual([r.num for r in result], range(70, 85))
+    
+    def testSortLimitViaBatchingArgsEarlySecondHalf(self):
+        query = dict(att1='att1', sort_on='num', b_start=55, b_size=15)
+        result = self._catalog(query)
+        self.assertEqual(result.actual_result_count, 100)
+        self.assertEqual([r.num for r in result], range(55, 70))
 
     def testSortLimitViaBatchingArgsEnd(self):
         query = dict(att1='att1', sort_on='num', b_start=90, b_size=10)



More information about the checkins mailing list