From b7681cd6593e06946b16201da2ebe13797653925 Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Fri, 4 Nov 2016 11:50:05 +0100 Subject: [PATCH] erp5.util.testnode: clean up error handling in TestNode --- erp5/util/testnode/testnode.py | 40 +++++++++++++++------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/erp5/util/testnode/testnode.py b/erp5/util/testnode/testnode.py index 1a0b164690..198ef1a2f5 100644 --- a/erp5/util/testnode/testnode.py +++ b/erp5/util/testnode/testnode.py @@ -195,7 +195,8 @@ shared = true updater.checkout() revision_list.append((repository_id, updater.getRevision())) except SubprocessError, e: - log("Error while getting repository, ignoring this test suite : %r" % (e,), exc_info=sys.exc_info()) + log("Error while getting repository, ignoring this test suite", + exc_info=1) return False node_test_suite.revision_list = revision_list return True @@ -288,7 +289,7 @@ shared = true else: os.remove(folder_path) except OSError: - self.log("_cleanupTemporaryFiles exception", exc_info=sys.exc_info()) + self.log("_cleanupTemporaryFiles exception", exc_info=1) def cleanUp(self,test_result): log = self.log @@ -330,13 +331,13 @@ shared = true # Backward compatiblity test_suite_data = json.loads(test_suite_data) test_suite_data = Utils.deunicodeData(test_suite_data) - log("Got following test suite data from master : %r" % \ - (test_suite_data,)) + log("Got following test suite data from master : %r", + test_suite_data) try: my_test_type = self.test_suite_portal.getTestType() - except: - log("testnode, error during requesting getTestType() method \ -from the distributor.") + except Exception: + log("testnode, error during requesting getTestType() method" + " from the distributor.") raise # Select runner according to the test type if my_test_type == 'UnitTest': @@ -346,7 +347,7 @@ from the distributor.") else: log("testnode, Runner type %s not implemented.", my_test_type) raise NotImplementedError - log("Type of current test is %s" % (my_test_type,)) + log("Type of current test is %s", my_test_type) # master testnode gets test_suites, slaves get nothing runner.prepareSlapOSForTestNode(test_node_slapos) # Clean-up test suites @@ -386,7 +387,7 @@ from the distributor.") node_test_suite.test_suite_title, node_test_suite.project_title) remote_test_result_needs_cleanup = True - log("testnode, test_result : %r" % (test_result, )) + log("testnode, test_result : %r", test_result) if test_result is not None: self.registerSuiteLog(test_result, node_test_suite) self.checkRevision(test_result,node_test_suite) @@ -424,12 +425,11 @@ from the distributor.") raise ValueError(error_message) else: raise NotImplementedError - # break the loop to get latest priorities from master break self.cleanUp(test_result) except (SubprocessError, CalledProcessError, ConnectionError) as e: - log("SubprocessError or ConnectionError : %r" % (e,), exc_info=sys.exc_info()) + log("", exc_info=1) if remote_test_result_needs_cleanup: status_dict = e.status_dict or {} test_result.reportFailure( @@ -440,7 +440,7 @@ from the distributor.") continue except ValueError as e: # This could at least happens if runTestSuite is not found - log("ValueError : %r" % (e,), exc_info=sys.exc_info()) + log("", exc_info=1) if node_test_suite is not None: node_test_suite.retry_software_count += 1 if remote_test_result_needs_cleanup: @@ -448,24 +448,20 @@ from the distributor.") command='', stdout='', stderr="ValueError was raised : %s" % (e,), ) - except CancellationError, e: - log("CancellationError", exc_info=sys.exc_info()) + except CancellationError: + log("", exc_info=1) self.process_manager.under_cancellation = False node_test_suite.retry = True continue - except: - ex_type, ex, tb = sys.exc_info() - traceback.print_tb(tb) - log("erp5testnode exception", exc_info=sys.exc_info()) - raise now = time.time() self.cleanUp(test_result) if (now-begin) < 120: sleep_time = 120 - (now-begin) - log("End of processing, going to sleep %s" % sleep_time) + log("End of processing, going to sleep %s", sleep_time) time.sleep(sleep_time) - except Exception as e: - log("Exception in error handling : %r" % (e,), exc_info=sys.exc_info()) + except: + log("", exc_info=1) + raise finally: if 'tb' in locals(): del tb -- 2.30.9