diff --git a/product/ERP5Type/tests/ERP5TypeTestCase.py b/product/ERP5Type/tests/ERP5TypeTestCase.py index 0298293e426a0bf8fb2e01630c718fc169b1111f..e363950d664dc9fe7e50b69f30e085255b69d0db 100644 --- a/product/ERP5Type/tests/ERP5TypeTestCase.py +++ b/product/ERP5Type/tests/ERP5TypeTestCase.py @@ -686,20 +686,15 @@ class ERP5TypeTestCase(PortalTestCase): # Release locks transaction.commit() self.portal = portal - portal_activities = getattr(portal, 'portal_activities', None) if len(setup_done) == 1: # make sure it is run only once try: from Products import DeadlockDebugger except ImportError: pass - if int(os.environ.get('start_zserver', 0)): - from Testing.ZopeTestCase.utils import startZServer - ZopeTestCase._print('Running ZServer on port %i\n' - % startZServer()[1]) - if portal_activities is not None: - portal_activities.distributingNode = portal_activities.getCurrentNode() - portal_activities._nodes = portal_activities.distributingNode, + from Testing.ZopeTestCase.utils import startZServer + ZopeTestCase._print('Running ZServer on port %i\n' + % startZServer()[1]) self._updateConnectionStrings() self._recreateCatalog() @@ -760,6 +755,7 @@ class ERP5TypeTestCase(PortalTestCase): transaction.commit() + portal_activities = getattr(portal, 'portal_activities', None) if portal_activities is not None: if not quiet: ZopeTestCase._print('Executing pending activities ... ') @@ -767,9 +763,7 @@ class ERP5TypeTestCase(PortalTestCase): count = 1000 message_count = len(portal_activities.getMessageList()) while message_count > 0: - portal_activities.distribute() - portal_activities.tic() - transaction.commit() + portal_activities.process_timer(None, None) new_message_count = len(portal_activities.getMessageList()) if new_message_count != message_count: if not quiet: @@ -811,6 +805,19 @@ class ERP5TypeTestCase(PortalTestCase): % title) # run_unit_test depends on this string. raise + def beforeClose(self): + PortalTestCase.beforeClose(self) + try: + # portal_activities.process_timer automatically registers current node + # (localhost:<random_port>). We must unregister it so that Data.fs can + # be reused without reconfiguring portal_activities. + portal_activities = self.portal.portal_activities + del portal_activities.distributingNode + del portal_activities._nodes + transaction.commit() + except AttributeError: + pass + def stepPdb(self, sequence=None, sequence_list=None): """Invoke debugger""" try: # try ipython if available @@ -989,7 +996,7 @@ def dummy_tearDown(self): the original tests, which would write to the FileStorage when --save is enabled ''' - self._close() + self._clear(1) def optimize(): '''Significantly reduces portal creation time.'''