SVN: ZODB/trunk/src/Z Deprecated ZODB.interfaces.StorageStopIteration. Storage

Jim Fulton <[email protected]>
Newsgroups gmane.comp.python.zope.zodb.cvs
Message-ID <[email protected]>
Log message for revision 112460:
  Deprecated ZODB.interfaces.StorageStopIteration.  Storage
  iterator implementations should just raise StopIteration, which
  means they can now be implemented as generators.
  

Changed:
  U   ZODB/trunk/src/ZEO/ClientStorage.py
  U   ZODB/trunk/src/ZODB/tests/IteratorStorage.py
  U   ZODB/trunk/src/ZODB/tests/testMappingStorage.py

-=-
Modified: ZODB/trunk/src/ZEO/ClientStorage.py
===================================================================
--- ZODB/trunk/src/ZEO/ClientStorage.py	2010-05-18 15:22:07 UTC (rev 112459)
+++ ZODB/trunk/src/ZEO/ClientStorage.py	2010-05-18 15:22:09 UTC (rev 112460)
@@ -1530,7 +1530,7 @@
 
     def next(self):
         if self._ended:
-            raise ZODB.interfaces.StorageStopIteration()
+            raise StopIteration()
 
         if self._iid < 0:
             raise ClientDisconnected("Disconnected iterator")
@@ -1541,7 +1541,7 @@
             # disposed it.
             self._ended = True
             self._storage._forget_iterator(self._iid)
-            raise ZODB.interfaces.StorageStopIteration()
+            raise StopIteration()
 
         return ClientStorageTransactionInformation(
             self._storage, self, *tx_data)
@@ -1582,13 +1582,13 @@
         if self._completed:
             # We finished iteration once already and the server can't know
             # about the iteration anymore.
-            raise ZODB.interfaces.StorageStopIteration()
+            raise StopIteration()
         item = self._storage._server.iterator_record_next(self._riid)
         if item is None:
             # The iterator is exhausted, and the server has already
             # disposed it.
             self._completed = True
-            raise ZODB.interfaces.StorageStopIteration()
+            raise StopIteration()
         return ZODB.BaseStorage.DataRecord(*item)
 
 

Modified: ZODB/trunk/src/ZODB/tests/IteratorStorage.py
===================================================================
--- ZODB/trunk/src/ZODB/tests/IteratorStorage.py	2010-05-18 15:22:07 UTC (rev 112459)
+++ ZODB/trunk/src/ZODB/tests/IteratorStorage.py	2010-05-18 15:22:09 UTC (rev 112460)
@@ -229,13 +229,9 @@
             # meaning they were the same length.
             # Additionally, check that we're backwards compatible to the
             # IndexError we used to raise before.
-            self.assertRaises(IndexError, itxn1.next)
-            self.assertRaises(IndexError, itxn2.next)
             self.assertRaises(StopIteration, itxn1.next)
             self.assertRaises(StopIteration, itxn2.next)
         # Make sure ther are no more records left in txn1 and txn2, meaning
         # they were the same length
-        self.assertRaises(IndexError, iter1.next)
-        self.assertRaises(IndexError, iter2.next)
         self.assertRaises(StopIteration, iter1.next)
         self.assertRaises(StopIteration, iter2.next)

Modified: ZODB/trunk/src/ZODB/tests/testMappingStorage.py
===================================================================
--- ZODB/trunk/src/ZODB/tests/testMappingStorage.py	2010-05-18 15:22:07 UTC (rev 112459)
+++ ZODB/trunk/src/ZODB/tests/testMappingStorage.py	2010-05-18 15:22:09 UTC (rev 112460)
@@ -13,6 +13,7 @@
 ##############################################################################
 import ZODB.MappingStorage
 import unittest
+import ZODB.tests.hexstorage
 
 
 from ZODB.tests import (
@@ -48,13 +49,21 @@
         # doesnt support huge transaction metadata. This storage doesnt
         # have this limit, so we inhibit this test here.
         pass
-        
+
     def checkLoadBeforeUndo(self):
         pass # we don't support undo yet
     checkUndoZombie = checkLoadBeforeUndo
 
+class MappingStorageHexTests(MappingStorageTests):
+
+    def setUp(self):
+        StorageTestBase.StorageTestBase.setUp(self, )
+        self._storage = ZODB.tests.hexstorage.HexStorage(
+            ZODB.MappingStorage.MappingStorage())
+
 def test_suite():
     suite = unittest.makeSuite(MappingStorageTests, 'check')
+    suite = unittest.makeSuite(MappingStorageHexTests, 'check')
     return suite
 
 if __name__ == "__main__":
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.