From e18266a2b25b5dcdb768c795a6783c86525a2dcc Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Tue, 10 May 2016 18:41:50 +0200 Subject: [PATCH] Make functional tests stop waiting for activities as soon as they're all in failed state --- .../extension.erp5.ERP5Zuite.py | 20 +++++++ .../Zuite_waitForActivities.py | 16 ------ .../Zuite_waitForActivities.xml | 56 ++----------------- 3 files changed, 25 insertions(+), 67 deletions(-) delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.py diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py index 0eaee8541c..eb31da73e3 100644 --- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py +++ b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py @@ -1,3 +1,23 @@ +from time import sleep + +def waitForActivities(self, count=1000): + """ + We wait until all activities are finished + + RuntimeError is raised in case there is no way + to finish activities. + """ + activity_tool = self.getPortalObject().portal_activities + for x in xrange(count): + x = activity_tool.getMessageList() + if not x: + return 'Done.' + if all(x.processing_node == -2 for x in x): + break + activity_tool.process_timer(None, None) + sleep(1) + raise RuntimeError('tic is looping forever.') + def UpdateImage(image): image._update_image_info() diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.py deleted file mode 100644 index 98da7ee93a..0000000000 --- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.py +++ /dev/null @@ -1,16 +0,0 @@ -""" - We wait until all activities are finished - - RuntimeError is raised in case there is no way - to finish activities. -""" -from Products.ERP5Type.Utils import sleep -count = int(count) -while len(context.portal_activities.getMessageList()) > 0: - context.portal_activities.process_timer(0, 0) - count -= 1 - sleep(t=1) - if count < 0: - raise RuntimeError, 'tic is endless' - -return 'Done.' diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml index 608ad57218..4a3db25edd 100644 --- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml +++ b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml @@ -2,63 +2,17 @@ <ZopeData> <record id="1" aka="AAAAAAAAAAE="> <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/> </pickle> <pickle> <dictionary> <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </value> + <key> <string>_function</string> </key> + <value> <string>waitForActivities</string> </value> </item> <item> - <key> <string>_bind_names</string> </key> - <value> - <object> - <klass> - <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> - </klass> - <tuple/> - <state> - <dictionary> - <item> - <key> <string>_asgns</string> </key> - <value> - <dictionary> - <item> - <key> <string>name_container</string> </key> - <value> <string>container</string> </value> - </item> - <item> - <key> <string>name_context</string> </key> - <value> <string>context</string> </value> - </item> - <item> - <key> <string>name_m_self</string> </key> - <value> <string>script</string> </value> - </item> - <item> - <key> <string>name_subpath</string> </key> - <value> <string>traverse_subpath</string> </value> - </item> - </dictionary> - </value> - </item> - </dictionary> - </state> - </object> - </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>count = 1000</string> </value> - </item> - <item> - <key> <string>_proxy_roles</string> </key> - <value> - <tuple> - <string>Manager</string> - </tuple> - </value> + <key> <string>_module</string> </key> + <value> <string>ERP5Zuite</string> </value> </item> <item> <key> <string>id</string> </key> -- 2.30.9