mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	b. Adding traceback from pymysql to debug problems in connecting with database (cherry picked from commit 81218d718af0ec101f7ba424c62bb6e0b5642744)
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| try:
 | |
|     import unittest2 as unittest
 | |
| except ImportError:
 | |
|     import unittest
 | |
| 
 | |
| from functools import partial
 | |
| import os
 | |
| import sys
 | |
| import logging
 | |
| def testCaseLogger(message, logger=None):
 | |
|     if logger is not None:
 | |
|         logger.debug(message)
 | |
| class TestCaseExecuteEngine(object):
 | |
|     def __init__(self, testclient, testCaseFolder, testcaseLogFile=None, testResultLogFile=None):
 | |
|         self.testclient = testclient
 | |
|         self.testCaseFolder = testCaseFolder
 | |
|         self.logger = None
 | |
|         if testcaseLogFile is not None:
 | |
|             logger = logging.getLogger("testcase")
 | |
|             fh = logging.FileHandler(testcaseLogFile)
 | |
|             logger.addHandler(fh)
 | |
|             logger.setLevel(logging.DEBUG)
 | |
|             self.logger = logger
 | |
|         if testResultLogFile is not None:
 | |
|             fp = open(testResultLogFile, "w")
 | |
|             self.testResultLogFile = fp
 | |
|         else:
 | |
|             self.testResultLogFile = sys.stdout
 | |
|     
 | |
|     def injectTestCase(self, testSuites):
 | |
|         for test in testSuites:
 | |
|             if isinstance(test, unittest.BaseTestSuite):
 | |
|                 self.injectTestCase(test)
 | |
|             else:
 | |
|                 setattr(test, "testClient", self.testclient)
 | |
|                 setattr(test, "debug", partial(testCaseLogger, logger=self.logger)) 
 | |
|     def run(self):
 | |
|         loader = unittest.loader.TestLoader()
 | |
|         suite = loader.discover(self.testCaseFolder)
 | |
|         self.injectTestCase(suite)
 | |
|         
 | |
|         unittest.TextTestRunner(stream=self.testResultLogFile, verbosity=2).run(suite)
 | |
|         
 | |
|         
 |