Merge "Make SFC test a python call to main()"
[functest.git] / functest / ci / generate_report.py
index 9ae9dca..3872a07 100755 (executable)
@@ -1,11 +1,17 @@
+#!/usr/bin/env python
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
 import json
 import re
 import urllib2
 
 import functest.utils.functest_logger as ft_logger
 import functest.utils.functest_utils as ft_utils
-import functest.utils.functest_constants as ft_constants
-
+from functest.utils.constants import CONST
 
 COL_1_LEN = 25
 COL_2_LEN = 15
@@ -17,18 +23,10 @@ COL_5_LEN = 75
 # and then we can print the url to the specific test result
 
 
-class GlobalVariables:
-    IS_CI_RUN = ft_constants.IS_CI_RUN
-    BUILD_TAG = ft_constants.CI_BUILD_TAG
-    INSTALLER = ft_constants.CI_INSTALLER_TYPE
-    CI_LOOP = ft_constants.CI_LOOP
-    SCENARIO = ft_constants.CI_SCENARIO
-
-
 logger = ft_logger.Logger("generate_report").getLogger()
 
 
-def init(tiers_to_run):
+def init(tiers_to_run=[]):
     test_cases_arr = []
     for tier in tiers_to_run:
         for test in tier.get_tests():
@@ -41,8 +39,8 @@ def init(tiers_to_run):
 
 
 def get_results_from_db():
-    url = ft_utils.get_db_url() + '/results?build_tag=' \
-        + GlobalVariables.BUILD_TAG
+    url = "%s/results?build_tag=%s" % (ft_utils.get_db_url(),
+                                       CONST.BUILD_TAG)
     logger.debug("Query to rest api: %s" % url)
     try:
         data = json.load(urllib2.urlopen(url))
@@ -69,7 +67,7 @@ def print_line(w1, w2='', w3='', w4='', w5=''):
            '| ' + w2.ljust(COL_2_LEN - 1) +
            '| ' + w3.ljust(COL_3_LEN - 1) +
            '| ' + w4.ljust(COL_4_LEN - 1))
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         str += ('| ' + w5.ljust(COL_5_LEN - 1))
     str += '|\n'
     return str
@@ -77,7 +75,7 @@ def print_line(w1, w2='', w3='', w4='', w5=''):
 
 def print_line_no_columns(str):
     TOTAL_LEN = COL_1_LEN + COL_2_LEN + COL_3_LEN + COL_4_LEN + 2
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         TOTAL_LEN += COL_5_LEN + 1
     return ('| ' + str.ljust(TOTAL_LEN) + "|\n")
 
@@ -87,16 +85,16 @@ def print_separator(char="=", delimiter="+"):
            delimiter + char * COL_2_LEN +
            delimiter + char * COL_3_LEN +
            delimiter + char * COL_4_LEN)
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         str += (delimiter + char * COL_5_LEN)
     str += '+\n'
     return str
 
 
-def main(args):
+def main(args=[]):
     executed_test_cases = args
 
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         results = get_results_from_db()
         if results is not None:
             for test in executed_test_cases:
@@ -105,15 +103,15 @@ def main(args):
                              "result": data['result']})
 
     TOTAL_LEN = COL_1_LEN + COL_2_LEN + COL_3_LEN + COL_4_LEN
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         TOTAL_LEN += COL_5_LEN
     MID = TOTAL_LEN / 2
 
-    if GlobalVariables.BUILD_TAG is not None:
-        if re.search("daily", GlobalVariables.BUILD_TAG) is not None:
-            GlobalVariables.CI_LOOP = "daily"
+    if CONST.BUILD_TAG is not None:
+        if re.search("daily", CONST.BUILD_TAG) is not None:
+            CONST.CI_LOOP = "daily"
         else:
-            GlobalVariables.CI_LOOP = "weekly"
+            CONST.CI_LOOP = "weekly"
 
     str = ''
     str += print_separator('=', delimiter="=")
@@ -122,19 +120,19 @@ def main(args):
     str += print_line_no_columns(' ')
     str += print_line_no_columns(" Deployment description:")
     str += print_line_no_columns("   INSTALLER: %s"
-                                 % GlobalVariables.INSTALLER)
-    if GlobalVariables.SCENARIO is not None:
+                                 % CONST.INSTALLER_TYPE)
+    if CONST.DEPLOY_SCENARIO is not None:
         str += print_line_no_columns("   SCENARIO:  %s"
-                                     % GlobalVariables.SCENARIO)
-    if GlobalVariables.BUILD_TAG is not None:
+                                     % CONST.DEPLOY_SCENARIO)
+    if CONST.BUILD_TAG is not None:
         str += print_line_no_columns("   BUILD TAG: %s"
-                                     % GlobalVariables.BUILD_TAG)
-    if GlobalVariables.CI_LOOP is not None:
+                                     % CONST.BUILD_TAG)
+    if CONST.CI_LOOP is not None:
         str += print_line_no_columns("   CI LOOP:   %s"
-                                     % GlobalVariables.CI_LOOP)
+                                     % CONST.CI_LOOP)
     str += print_line_no_columns(' ')
     str += print_separator('=')
-    if GlobalVariables.IS_CI_RUN:
+    if CONST.IS_CI_RUN:
         str += print_line('TEST CASE', 'TIER', 'DURATION', 'RESULT', 'URL')
     else:
         str += print_line('TEST CASE', 'TIER', 'DURATION', 'RESULT')