|
@@ -21,7 +21,10 @@ limitations under the License.
|
|
|
import unittest
|
|
|
import doctest
|
|
|
from os.path import dirname, split, isdir
|
|
|
+import logging.handlers
|
|
|
+import logging
|
|
|
|
|
|
+LOG_FILE_NAME='tests.log'
|
|
|
|
|
|
|
|
|
class TestAgent(unittest.TestSuite):
|
|
@@ -44,14 +47,32 @@ def all_tests_suite():
|
|
|
return TestAgent([suite])
|
|
|
|
|
|
def main():
|
|
|
+
|
|
|
+ logger.info('------------------------------------------------------------------------')
|
|
|
+ logger.info('PYTHON AGENT TESTS')
|
|
|
+ logger.info('------------------------------------------------------------------------')
|
|
|
parent_dir = lambda x: split(x)[0] if isdir(x) else split(dirname(x))[0]
|
|
|
src_dir = os.getcwd()
|
|
|
- agent_dir = parent_dir(parent_dir(parent_dir(src_dir)))
|
|
|
- path = agent_dir + os.sep + "target/tests.log"
|
|
|
+ target_dir = parent_dir(parent_dir(parent_dir(src_dir))) + os.sep + 'target'
|
|
|
+ if not os.path.exists(target_dir):
|
|
|
+ os.mkdir(target_dir)
|
|
|
+ path = target_dir + os.sep + LOG_FILE_NAME
|
|
|
file=open(path, "w")
|
|
|
runner = unittest.TextTestRunner(stream=file)
|
|
|
suite = all_tests_suite()
|
|
|
- raise SystemExit(not runner.run(suite).wasSuccessful())
|
|
|
+
|
|
|
+ status = runner.run(suite).wasSuccessful()
|
|
|
+
|
|
|
+ if not status:
|
|
|
+ logger.error('-----------------------------------------------------------------------')
|
|
|
+ logger.error('Python unit tests failed')
|
|
|
+ logger.error('Find detailed logs in ' + path)
|
|
|
+ logger.error('-----------------------------------------------------------------------')
|
|
|
+ exit(1)
|
|
|
+ else:
|
|
|
+ logger.info('------------------------------------------------------------------------')
|
|
|
+ logger.info('Python unit tests finished succesfully')
|
|
|
+ logger.info('------------------------------------------------------------------------')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
import os
|
|
@@ -60,4 +81,10 @@ if __name__ == '__main__':
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + os.sep + 'main' + os.sep + 'python')
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + os.sep + 'main' + os.sep + 'python' + os.sep + 'ambari_agent')
|
|
|
+ logger = logging.getLogger()
|
|
|
+ logger.setLevel(logging.INFO)
|
|
|
+ formatter = logging.Formatter("[%(levelname)s] %(message)s")
|
|
|
+ consoleLog = logging.StreamHandler(sys.stdout)
|
|
|
+ consoleLog.setFormatter(formatter)
|
|
|
+ logger.addHandler(consoleLog)
|
|
|
main()
|