diff --git a/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py b/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py index 4420a1a2d46bd700c688af9069e17b9528462c66..80e36c47ecd38c6f152e4ca99ba2790eedbd7fec 100755 --- a/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py +++ b/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py @@ -91,7 +91,7 @@ class Xvfb: result = check_process.communicate()[0] if result == 'Free': # Xvfb did not start properly so stop here - raise NotImplementedError, "Can not start Xvfb, stop test execution" + raise NotImplementedError, "Can not start Xvfb, stop test execution" def run(self): for display_try in self.display_list: @@ -294,20 +294,12 @@ class FunctionalTestRunner: while self.getStatus() is None: time.sleep(10) if (time.time() - start) > float(self.timeout): - self.verboseErrorLog() raise TimeoutError("Test took more them %s seconds" % self.timeout) finally: self.browser.quit() xvfb.quit() - def verboseErrorLog(self, size=10): - for entry in self.portal.error_log.getLogEntries()[:size]: - print "="*20 - print "ERROR ID : %s" % entry["id"] - print "TRACEBACK :" - print entry["tb_text"] - def processResult(self): file_content = self.getStatus().encode("utf-8", "replace") sucess_amount = TEST_PASS_RE.search(file_content).group(1) @@ -361,6 +353,13 @@ class ERP5TypeFunctionalTestCase(ERP5TypeTestCase): # XXX Memcached is missing # XXX Persistent cache setup is missing + def _verboseErrorLog(self, size=10): + for entry in self.portal.error_log.getLogEntries()[:size]: + print "="*20 + print "ERROR ID : %s" % entry["id"] + print "TRACEBACK :" + print entry["tb_text"] + def testFunctionalTestRunner(self): # first of all, abort to get rid of the mysql participation inn this # transaction @@ -373,7 +372,12 @@ class ERP5TypeFunctionalTestCase(ERP5TypeTestCase): debug = self.foreground or os.environ.get("erp5_debug_mode") self.runner.test(debug=debug) - detail, success, failure, error_title_list = self.runner.processResult() + try: + detail, success, failure, error_title_list = self.runner.processResult() + except TimeoutError, e: + self._verboseErrorLog(20) + raise TimeoutError(e) + self.logMessage("-" * 79) total = success + failure