[Erp5-report] r42532 seb - /erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jan 20 19:14:14 CET 2011


Author: seb
Date: Thu Jan 20 19:14:13 2011
New Revision: 42532

URL: http://svn.erp5.org?rev=42532&view=rev
Log:
disable portal_activities when the live test in running in
order to avoid having several parallel transaction working
on same activities

Modified:
    erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py

Modified: erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py?rev=42532&r1=42531&r2=42532&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/ERP5TypeLiveTestCase.py [utf8] Thu Jan 20 19:14:13 2011
@@ -105,10 +105,14 @@ class ERP5TypeLiveTestCase(ERP5TypeTestC
       transaction.abort()
 
     def _setup(self):
-        '''Configures the portal. Framework authors may
-           override.
+        '''Change some site properties in order to be ready for live test
         '''
-        pass # Do nothing in a live test
+        # Disabling portal_activities is required in order to avoid
+        # conflict with other threads doing tic in the same time
+        self.initial_transaction_hash = transaction.get().__hash__()
+        self.activity_tool_subscribed = self.getPortalObject()\
+                .portal_activities.isSubscribed()
+        self.portal.portal_activities.unsubscribe()
 
     def setUp(self):
         '''Sets up the fixture. Do not override,
@@ -137,8 +141,9 @@ class ERP5TypeLiveTestCase(ERP5TypeTestC
       pass
 
     def beforeSetUp(self):
-      '''Called after setUp() has completed. This is
-         far and away the most useful hook.
+      '''Called before the ZODB connection is opened,
+           at the start of setUp(). By default begins
+           a new transaction.
       '''
       pass
 
@@ -157,8 +162,12 @@ class ERP5TypeLiveTestCase(ERP5TypeTestC
 
     def beforeClose(self):
       """
-      Clear "my activities"... how to do this ?
+      put back site properties that were disabled for unit test
       """
+      if transaction.get().__hash__() != self.initial_transaction_hash:
+        if self.activity_tool_subscribed:
+          self.portal.portal_activities.subscribe()
+          transaction.commit()
       PortalTestCase.beforeClose(self)
 
 def runLiveTest(test_list, verbosity=1, stream=None, **kw):



More information about the Erp5-report mailing list