[Zodb-checkins] CVS: ZODB3/ZODB/tests - IteratorStorage.py:1.17.2.3 RevisionStorage.py:1.4.2.4 TransactionalUndoVersionStorage.py:1.12.2.3 VersionStorage.py:1.25.2.4

Jeremy Hylton cvs-admin at zope.org
Thu Nov 20 16:01:14 EST 2003


Update of /cvs-repository/ZODB3/ZODB/tests
In directory cvs.zope.org:/tmp/cvs-serv12351/ZODB/tests

Modified Files:
      Tag: ZODB3-mvcc-2-branch
	IteratorStorage.py RevisionStorage.py 
	TransactionalUndoVersionStorage.py VersionStorage.py 
Log Message:
Change loadEx() to return the version the data is from as 4th value.

If you request version X, but version X doesn't exist, you get the
non-version data.  ZEO can manage its cache more effectively if it
knows whether the data it gets back is actually from a version or its
just non-version data.

Also fix one test the a previous checkin broke.  You always get the
current txn id, even when you get old data and serial no via
backpointer.


=== ZODB3/ZODB/tests/IteratorStorage.py 1.17.2.2 => 1.17.2.3 ===
--- ZODB3/ZODB/tests/IteratorStorage.py:1.17.2.2	Tue Nov 11 16:43:29 2003
+++ ZODB3/ZODB/tests/IteratorStorage.py	Thu Nov 20 16:01:11 2003
@@ -150,7 +150,7 @@
     def checkLoadEx(self):
         oid = self._storage.new_oid()
         self._dostore(oid, data=42)
-        data, serial, tid = self._storage.loadEx(oid, "")
+        data, serial, tid, ver = self._storage.loadEx(oid, "")
         self.assertEqual(zodb_unpickle(data), MinPO(42))
         # In most storages, serial == tid, but that's not a required
         # part of the API.  The API goes out of its way to avoid


=== ZODB3/ZODB/tests/RevisionStorage.py 1.4.2.3 => 1.4.2.4 ===
--- ZODB3/ZODB/tests/RevisionStorage.py:1.4.2.3	Tue Nov 18 12:30:09 2003
+++ ZODB3/ZODB/tests/RevisionStorage.py	Thu Nov 20 16:01:11 2003
@@ -114,7 +114,7 @@
             revs.append(self._storage.loadEx(oid, ""))
 
         prev_tid = None
-        for i, (data, serial, tid) in enumerate(revs):
+        for i, (data, serial, tid, ver) in enumerate(revs):
             t = self._storage.loadNonCurrent(oid, p64(u64(tid) + 1))
             self.assertEqual(data, t[0])
             self.assertEqual(serial, t[1])


=== ZODB3/ZODB/tests/TransactionalUndoVersionStorage.py 1.12.2.2 => 1.12.2.3 ===
--- ZODB3/ZODB/tests/TransactionalUndoVersionStorage.py:1.12.2.2	Tue Nov 18 12:31:22 2003
+++ ZODB3/ZODB/tests/TransactionalUndoVersionStorage.py	Thu Nov 20 16:01:11 2003
@@ -136,15 +136,15 @@
 
         self.assertEqual(load_value(oid1), 0)
         self.assertEqual(load_value(oid1, version), 2)
-        data, serial, tid = self._storage.loadEx(oid1, "")
+        data, serial, tid, ver = self._storage.loadEx(oid1, "")
         # After undoing the version commit, the non-version data
         # once again becomes the non-version data from 'create1'.
-        self.assertEqual(tid, revid1)
+        self.assertEqual(tid, self._storage.lastTransaction())
 
         # The current version data comes from an undo record, which
         # means that it gets data via the backpointer but serial
         # and tid from the current txn.
-        data, serial, tid = self._storage.loadEx(oid1, version)
+        data, serial, tid, ver = self._storage.loadEx(oid1, version)
         self.assertEqual(tid, self._storage.lastTransaction())
 
     def checkUndoAbortVersion(self):
@@ -169,12 +169,7 @@
                                version=version, description='version2')
         self._x_dostore(description='create2')
 
-        t = Transaction()
-        t.description = 'abort version'
-        self._storage.tpc_begin(t)
-        self._storage.abortVersion(version, t)
-        self._storage.tpc_vote(t)
-        self._storage.tpc_finish(t)
+        self._abortVersion(version)
 
         info = self._storage.undoInfo()
         t_id = info[0]['id']


=== ZODB3/ZODB/tests/VersionStorage.py 1.25.2.3 => 1.25.2.4 ===
--- ZODB3/ZODB/tests/VersionStorage.py:1.25.2.3	Tue Nov 11 23:32:08 2003
+++ ZODB3/ZODB/tests/VersionStorage.py	Thu Nov 20 16:01:11 2003
@@ -44,7 +44,7 @@
         revid1 = self._dostore(oid, data=MinPO(12))
         revid2 = self._dostore(oid, revid=revid1, data=MinPO(13),
                                version="version")
-        data, serial, tid = self._storage.loadEx(oid, "version")
+        data, serial, tid, ver = self._storage.loadEx(oid, "version")
         self.assertEqual(revid2, serial)
         self.assertEqual(zodb_unpickle(data), MinPO(13))
         self.assertEqual(tid, serial)
@@ -54,7 +54,7 @@
         # use repr() to avoid getting binary data in a traceback on error
         self.assertEqual(`revid1`, `revid3`)
         self.assertNotEqual(`revid2`, `revid3`)
-        data, serial, tid = self._storage.loadEx(oid, "")
+        data, serial, tid, ver = self._storage.loadEx(oid, "")
         self.assertEqual(revid3, serial)
         self.assertEqual(zodb_unpickle(data), MinPO(12))
         # The storage API doesn't expose the tid as part of the
@@ -85,14 +85,14 @@
         if hasattr(self._storage, 'getSerial'):
             s = self._storage.getSerial(oid)
             eq(s, max(revid, vrevid))
-        data, serial, tid = self._storage.loadEx(oid, version)
+        data, serial, tid, ver = self._storage.loadEx(oid, version)
         eq(zodb_unpickle(data), MinPO(15))
         eq(serial, revid2)
         eq(tid, revid2)
-        data, serial, tid = self._storage.loadEx(oid, "other version")
+        data, serial, tid, ver = self._storage.loadEx(oid, "other version")
         eq(zodb_unpickle(data), MinPO(12))
         eq(serial, revid1)
-        eq(tid, revid1)
+        eq(tid, revid2)
 
     def checkVersionedLoadErrors(self):
         oid = self._storage.new_oid()




More information about the Zodb-checkins mailing list