Merge "[Promise test case] Use proper way to get parameters from yaml"
[functest.git] / ci / run_tests.py
index 383a20f..1947938 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python -u
 #
 # Author: Jose Lausuch (jose.lausuch@ericsson.com)
 #
@@ -8,11 +8,12 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 #
 
-import argparse
 import datetime
 import os
 import re
 import sys
+
+import argparse
 import functest.ci.generate_report as generate_report
 import functest.ci.tier_builder as tb
 import functest.utils.functest_logger as ft_logger
@@ -20,7 +21,8 @@ import functest.utils.functest_utils as ft_utils
 import functest.utils.openstack_clean as os_clean
 import functest.utils.openstack_snapshot as os_snapshot
 import functest.utils.openstack_utils as os_utils
-
+from functest.testcases.Controllers.ODL.OpenDaylightTesting import ODLTestCases
+from functest.utils.functest_utils import FUNCTEST_REPO as FUNCTEST_REPO
 
 parser = argparse.ArgumentParser()
 parser.add_argument("-t", "--test", dest="test", action='store',
@@ -39,9 +41,7 @@ logger = ft_logger.Logger("run_tests").getLogger()
 
 
 """ global variables """
-REPOS_DIR = os.getenv('repos_dir')
-FUNCTEST_REPO = ("%s/functest/" % REPOS_DIR)
-EXEC_SCRIPT = ("%sci/exec_test.sh" % FUNCTEST_REPO)
+EXEC_SCRIPT = ("%s/ci/exec_test.sh" % FUNCTEST_REPO)
 CLEAN_FLAG = True
 REPORT_FLAG = False
 EXECUTED_TEST_CASES = []
@@ -100,9 +100,15 @@ def run_test(test, tier_name):
     if REPORT_FLAG:
         flags += " -r"
 
-    cmd = ("%s%s" % (EXEC_SCRIPT, flags))
-    logger.debug("Executing command '%s'" % cmd)
-    result = ft_utils.execute_command(cmd, logger, exit_on_error=False)
+    if test_name == 'odl':
+        result = ODLTestCases.functest_run()
+        if result and REPORT_FLAG:
+            result = ODLTestCases.push_to_db()
+        result = not result
+    else:
+        cmd = ("%s%s" % (EXEC_SCRIPT, flags))
+        logger.debug("Executing command '%s'" % cmd)
+        result = ft_utils.execute_command(cmd, exit_on_error=False)
 
     if CLEAN_FLAG:
         cleanup()
@@ -128,8 +134,6 @@ def run_test(test, tier_name):
 
     update_test_info(test_name, result_str, duration_str)
 
-    return result
-
 
 def run_tier(tier):
     tier_name = tier.get_name()
@@ -144,11 +148,7 @@ def run_tier(tier):
     print_separator("#")
     logger.debug("\n%s" % tier)
     for test in tests:
-        res = run_test(test, tier_name)
-        if res != 0:
-            return res
-
-    return 0
+        run_test(test, tier_name)
 
 
 def run_all(tiers):
@@ -173,12 +173,9 @@ def run_all(tiers):
     logger.info("Tests to be executed:%s" % summary)
     EXECUTED_TEST_CASES = generate_report.init(tiers_to_run)
     for tier in tiers_to_run:
-        res = run_tier(tier)
-        if res != 0:
-            return res
-    generate_report.main(EXECUTED_TEST_CASES)
+        run_tier(tier)
 
-    return 0
+    generate_report.main(EXECUTED_TEST_CASES)
 
 
 def main():
@@ -188,7 +185,7 @@ def main():
     CI_INSTALLER_TYPE = os.getenv('INSTALLER_TYPE')
     CI_SCENARIO = os.getenv('DEPLOY_SCENARIO')
 
-    file = FUNCTEST_REPO + "/ci/testcases.yaml"
+    file = ft_utils.get_testcases_file()
     _tiers = tb.TierBuilder(CI_INSTALLER_TYPE, CI_SCENARIO, file)
 
     if args.noclean: