[Zodb-checkins] SVN: ZODB/trunk/src/ DemoStorages didn't close their changes databases when they were

Jim Fulton jim at zope.com
Sat Jul 10 15:21:13 EDT 2010


Log message for revision 114544:
  DemoStorages didn't close their changes databases when they were
  created temporarily (not passed to the constructor).
  

Changed:
  U   ZODB/trunk/src/CHANGES.txt
  U   ZODB/trunk/src/ZODB/DemoStorage.py
  U   ZODB/trunk/src/ZODB/DemoStorage.test

-=-
Modified: ZODB/trunk/src/CHANGES.txt
===================================================================
--- ZODB/trunk/src/CHANGES.txt	2010-07-10 19:12:23 UTC (rev 114543)
+++ ZODB/trunk/src/CHANGES.txt	2010-07-10 19:21:13 UTC (rev 114544)
@@ -8,6 +8,10 @@
 Bugs fixed
 ----------
 
+- When a demo storage push method was used to create a new demo
+  storage and the new storage was closed, the original was
+  (incorrectly) closed.
+
 - DemoStorages didn't close their changes databases when they were
   created temporarily (not passed to the constructor).
 

Modified: ZODB/trunk/src/ZODB/DemoStorage.py
===================================================================
--- ZODB/trunk/src/ZODB/DemoStorage.py	2010-07-10 19:12:23 UTC (rev 114543)
+++ ZODB/trunk/src/ZODB/DemoStorage.py	2010-07-10 19:21:13 UTC (rev 114544)
@@ -94,7 +94,12 @@
         self.base.cleanup()
         self.changes.cleanup()
 
+    __opened = True
+    def opened(self):
+        return self.__opened
+
     def close(self):
+        self.__opened = False
         if self.close_base_on_close:
             self.base.close()
         if self.close_changes_on_close:
@@ -253,7 +258,8 @@
         return self.base
 
     def push(self, changes=None):
-        return self.__class__(base=self, changes=changes)
+        return self.__class__(base=self, changes=changes,
+                              close_base_on_close=False)
 
     def store(self, oid, serial, data, version, transaction):
         assert version=='', "versions aren't supported"

Modified: ZODB/trunk/src/ZODB/DemoStorage.test
===================================================================
--- ZODB/trunk/src/ZODB/DemoStorage.test	2010-07-10 19:12:23 UTC (rev 114543)
+++ ZODB/trunk/src/ZODB/DemoStorage.test	2010-07-10 19:21:13 UTC (rev 114544)
@@ -185,7 +185,12 @@
     >>> changes.opened()
     False
 
+If storage returned by push is closed, the original storage isn't:
 
+    >>> demo3.push().close()
+    >>> demo2.opened()
+    True
+
 Blob Support
 ============
 



More information about the Zodb-checkins mailing list