[Neo-report] r2574 vincent - in /trunk/neo: storage/app.py tests/storage/testStorageApp.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Dec 24 23:56:54 CET 2010
Author: vincent
Date: Fri Dec 24 23:56:54 2010
New Revision: 2574
Log:
Restore msg id.
This fixes cases where storage tries to answer a request after executing
queued events. This cannto happen with current code, but will happen in
near future.
Modified:
trunk/neo/storage/app.py
trunk/neo/tests/storage/testStorageApp.py
Modified: trunk/neo/storage/app.py
==============================================================================
--- trunk/neo/storage/app.py [iso-8859-1] (original)
+++ trunk/neo/storage/app.py [iso-8859-1] Fri Dec 24 23:56:54 2010
@@ -329,8 +329,10 @@ class Application(object):
some_callable, msg_id, conn, args = p()
if conn.isAborted() or conn.isClosed():
continue
+ orig_msg_id = conn.getPeerId()
conn.setPeerId(msg_id)
some_callable(conn, *args)
+ conn.setPeerId(orig_msg_id)
def logQueuedEvents(self):
if self.event_queue is None:
Modified: trunk/neo/tests/storage/testStorageApp.py
==============================================================================
--- trunk/neo/tests/storage/testStorageApp.py [iso-8859-1] (original)
+++ trunk/neo/tests/storage/testStorageApp.py [iso-8859-1] Fri Dec 24 23:56:54 2010
@@ -16,7 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import unittest
-from mock import Mock
+from mock import Mock, ReturnValues
from neo.tests import NeoUnitTestBase
from neo.storage.app import Application
from neo.protocol import CellStates
@@ -131,8 +131,9 @@ class StorageAppTests(NeoUnitTestBase):
def test_03_executeQueuedEvents(self):
self.assertEqual(len(self.app.event_queue), 0)
msg_id = 1325136
+ msg_id_2 = 1325137
event = Mock({'__repr__': 'event'})
- conn = Mock({'__repr__': 'conn', 'getPeerId': msg_id})
+ conn = Mock({'__repr__': 'conn', 'getPeerId': ReturnValues(msg_id, msg_id_2)})
self.app.queueEvent(event, conn, "test")
self.app.executeQueuedEvents()
self.assertEquals(len(event.mockGetNamedCalls("__call__")), 1)
@@ -141,6 +142,10 @@ class StorageAppTests(NeoUnitTestBase):
self.assertEqual(params, "test")
params = call.kwparams
self.assertEqual(params, {})
+ calls = conn.mockGetNamedCalls("setPeerId")
+ self.assertEqual(len(calls), 2)
+ calls[0].checkArgs(msg_id)
+ calls[1].checkArgs(msg_id_2)
if __name__ == '__main__':
unittest.main()
More information about the Neo-report
mailing list