bug fix: Rally duration not correct due to result format change
[releng.git] / utils / test / result_collection_api / dashboard / functest2Dashboard.py
index a817f75..379b932 100644 (file)
@@ -14,8 +14,8 @@
 # a new method format_<Test_case>_for_dashboard(results)
 # v0.1: basic example with methods for odl, Tempest, Rally and vPing
 #
-import re
 import datetime
+import re
 
 
 def get_functest_cases():
@@ -117,12 +117,15 @@ def format_vIMS_for_dashboard(results):
             # Calculate nb of tests run and nb of tests failed
             # vIMS_results = get_vIMSresults(vIMS_test)
             # print vIMS_results
-            if data_test['result'] == "Passed":
-                nbTests += 1
-            elif data_test['result'] == "Failed":
-                nbFailures += 1
-            elif data_test['result'] == "Skipped":
-                nbSkipped += 1
+            try:
+                if data_test['result'] == "Passed":
+                    nbTests += 1
+                elif data_test['result'] == "Failed":
+                    nbFailures += 1
+                elif data_test['result'] == "Skipped":
+                    nbSkipped += 1
+            except:
+                nbTests = 0
 
         new_element.append({'x': data['creation_date'],
                             'y1': nbTests,
@@ -149,10 +152,13 @@ def format_vIMS_for_dashboard(results):
             nbTestsOK = 0
             nbTestsKO = 0
 
-            if data_test['result'] == "Passed":
-                nbTestsOK += 1
-            elif data_test['result'] == "Failed":
-                nbTestsKO += 1
+            try:
+                if data_test['result'] == "Passed":
+                    nbTestsOK += 1
+                elif data_test['result'] == "Failed":
+                    nbTestsKO += 1
+            except:
+                nbTestsOK = 0
 
             nbTests += nbTestsOK + nbTestsKO
             nbFailures += nbTestsKO
@@ -213,6 +219,25 @@ def format_Tempest_for_dashboard(results):
                       'data_set': [{'Run': nbTests,
                                     'Failed': nbFailures}]})
 
+    # Graph 4: (Success rate)=f(time)
+    # ***************************************
+    new_element = []
+    for data in results:
+        try:
+            diff = (int(data['details']['tests']) - int(data['details']['failures']))
+            success_rate = 100*diff/int(data['details']['tests'])
+        except:
+            success_rate = 0
+
+        new_element.append({'x': data['creation_date'],
+                            'y1': success_rate})
+
+    test_data.append({'name': "Tempest success rate",
+                      'info': {'type': "graph",
+                               'xlabel': 'time',
+                               'y1label': 'Success rate'},
+                      'data_set': new_element})
+
     return test_data
 
 
@@ -343,6 +368,33 @@ def format_Rally_for_dashboard(results):
     Post processing for the Rally test case
     """
     test_data = [{'description': 'Rally results for Dashboard'}]
+    # Graph 1: Test_Duration = f(time)
+    # ********************************
+    new_element = []
+    for data in results:
+        summary_cursor = len(data['details']) - 1
+        new_element.append({'x': data['creation_date'],
+                            'y': int(data['details'][summary_cursor]['summary']['duration'])})
+
+    test_data.append({'name': "rally duration",
+                      'info': {'type': "graph",
+                               'xlabel': 'time',
+                               'ylabel': 'duration (s)'},
+                      'data_set': new_element})
+
+    # Graph 2: Success rate = f(time)
+    # ********************************
+    new_element = []
+    for data in results:
+        new_element.append({'x': data['creation_date'],
+                            'y': float(data['details'][summary_cursor]['summary']['nb success'])})
+
+    test_data.append({'name': "rally success rate",
+                      'info': {'type': "graph",
+                               'xlabel': 'time',
+                               'ylabel': 'success rate (%)'},
+                      'data_set': new_element})
+
     return test_data
 
 
@@ -418,4 +470,3 @@ def format_vPing_userdata_for_dashboard(results):
                                     'Nb Success': nbTestOk}]})
 
     return test_data
-