[Neo-report] r1965 gregory - in /trunk/neo: client/ client/handlers/ tests/client/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 26 11:05:43 CET 2010


Author: gregory
Date: Fri Mar 26 11:05:43 2010
New Revision: 1965

Log:
Insert extension's data in transaction informations returned to ZODB.

Modified:
    trunk/neo/client/app.py
    trunk/neo/client/handlers/storage.py
    trunk/neo/tests/client/testClientApp.py

Modified: trunk/neo/client/app.py
==============================================================================
--- trunk/neo/client/app.py [iso-8859-1] (original)
+++ trunk/neo/client/app.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -16,7 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 from thread import get_ident
-from cPickle import dumps
+from cPickle import dumps, loads
 from zlib import compress as real_compress, decompress
 from neo.locking import Queue, Empty
 from random import shuffle
@@ -786,6 +786,7 @@
                 continue
 
             self.local_var.txn_info = 0
+            self.local_var.txn_ext = 0
             try:
                 self._askStorage(conn, Packets.AskTransactionInformation(
                     undone_tid))
@@ -830,6 +831,10 @@
             self.store(oid, undone_tid, data, None, txn)
         self.waitStoreResponses(tryToResolveConflict)
         return self.local_var.tid, oid_list
+
+    def _insertMetadata(self, txn_info, extension):
+        for k, v in loads(extension).items():
+            txn_info[k] = v
 
     def __undoLog(self, first, last, filter=None, block=0, with_oids=False):
         if last < 0:
@@ -871,6 +876,7 @@
                 conn = self.cp.getConnForCell(cell)
                 if conn is not None:
                     self.local_var.txn_info = 0
+                    self.local_var.txn_ext = 0
                     try:
                         self._askStorage(conn,
                                 Packets.AskTransactionInformation(tid))
@@ -890,6 +896,8 @@
                 if not with_oids:
                     self.local_var.txn_info.pop("oids")
                 append(self.local_var.txn_info)
+                self._insertMetadata(self.local_var.txn_info,
+                        self.local_var.txn_ext)
                 if len(undo_info) >= last - first:
                     break
         # Check we return at least one element, otherwise call
@@ -977,6 +985,8 @@
             self.local_var.txn_info['size'] = size
             if filter is None or filter(self.local_var.txn_info):
                 history_list.append(self.local_var.txn_info)
+            self._insertMetadata(self.local_var.txn_info,
+                    self.local_var.txn_ext)
 
         return history_list
 

Modified: trunk/neo/client/handlers/storage.py
==============================================================================
--- trunk/neo/client/handlers/storage.py [iso-8859-1] (original)
+++ trunk/neo/client/handlers/storage.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -91,6 +91,7 @@
         info['id'] = tid
         info['oids'] = oid_list
         info['packed'] = packed
+        self.app.local_var.txn_ext = ext
         self.app.local_var.txn_info = info
 
     def answerObjectHistory(self, conn, oid, history_list):

Modified: trunk/neo/tests/client/testClientApp.py
==============================================================================
--- trunk/neo/tests/client/testClientApp.py [iso-8859-1] (original)
+++ trunk/neo/tests/client/testClientApp.py [iso-8859-1] Fri Mar 26 11:05:43 2010
@@ -16,6 +16,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 import unittest
+from cPickle import dumps
 from mock import Mock, ReturnValues
 from ZODB.POSException import StorageTransactionError, UndoError, ConflictError
 from neo.tests import NeoTestBase
@@ -802,10 +803,11 @@
         oid1, oid2 = self.makeOID(1), self.makeOID(2)
         # TIDs packets supplied by _waitMessage hook
         # TXN info packets
-        p3 = Packets.AnswerTransactionInformation(tid1, '', '', '',
-                False, (oid1, ))
-        p4 = Packets.AnswerTransactionInformation(tid2, '', '', '',
-                False, (oid2, ))
+        extension = dumps({})
+        p3 = Packets.AnswerTransactionInformation(tid1, '', '',
+                extension, False, (oid1, ))
+        p4 = Packets.AnswerTransactionInformation(tid2, '', '',
+                extension, False, (oid2, ))
         p3.setId(0)
         p4.setId(1)
         conn = Mock({
@@ -837,12 +839,22 @@
         tid1, tid2 = self.makeTID(1), self.makeTID(2)
         object_history = ( (tid1, 42), (tid2, 42),)
         # object history, first is a wrong oid, second is valid
+<<<<<<< HEAD
         p2 = Packets.AnswerObjectHistory(oid, object_history)
         # transaction history
         p3 = Packets.AnswerTransactionInformation(tid1, 'u', 'd', 'e',
                 False, (oid, ))
         p4 = Packets.AnswerTransactionInformation(tid2, 'u', 'd', 'e',
                 False, (oid, ))
+=======
+        p2 = Packets.AnswerObjectHistory('', oid, object_history)
+        extension = dumps({'k': 'v'})
+        # transaction history
+        p3 = Packets.AnswerTransactionInformation('export', tid1, 'u', 'd',
+                extension, False, (oid, ))
+        p4 = Packets.AnswerTransactionInformation('export', tid2, 'u', 'd',
+                extension, False, (oid, ))
+>>>>>>> f540962... Insert extension's data in transaction informations returned to ZODB.
         p2.setId(0)
         p3.setId(1)
         p4.setId(2)





More information about the Neo-report mailing list