1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
from urllib2 import Request, urlopen, URLError
import json
import jinja2
import os
def sig_test_format(sig_test):
nbPassed = 0
nbFailures = 0
nbSkipped = 0
for data_test in sig_test:
if data_test['result'] == "Passed":
nbPassed+= 1
elif data_test['result'] == "Failed":
nbFailures += 1
elif data_test['result'] == "Skipped":
nbSkipped += 1
total_sig_test_result = {}
total_sig_test_result['passed'] = nbPassed
total_sig_test_result['failures'] = nbFailures
total_sig_test_result['skipped'] = nbSkipped
return total_sig_test_result
installers = ["fuel", "compass", "joid", "apex"]
step_order = ["initialisation", "orchestrator", "vIMS", "sig_test"]
for installer in installers:
request = Request('http://testresults.opnfv.org/test/api/v1/results?case=vims&installer=' + installer)
try:
response = urlopen(request)
k = response.read()
results = json.loads(k)
except URLError, e:
print 'No kittez. Got an error code:', e
test_results = results['results']
scenario_results = {}
for r in test_results:
if not r['version'] in scenario_results.keys():
scenario_results[r['version']] = []
scenario_results[r['version']].append(r)
for s, s_result in scenario_results.items():
scenario_results[s] = s_result[0:5]
for result in scenario_results[s]:
result["start_date"] = result["start_date"].split(".")[0]
sig_test = result['details']['sig_test']['result']
if not sig_test == "" and isinstance(sig_test, list):
format_result = sig_test_format(sig_test)
if format_result['failures'] > format_result['passed']:
result['details']['sig_test']['duration'] = 0
result['details']['sig_test']['result'] = format_result
nb_step_ok = 0
nb_step = len(result['details'])
for step_name, step_result in result['details'].items():
if step_result['duration'] != 0:
nb_step_ok += 1
m, s = divmod(step_result['duration'], 60)
m_display = ""
if int(m) != 0:
m_display += str(int(m)) + "m "
step_result['duration_display'] = m_display + str(int(s)) + "s"
result['pr_step_ok'] = 0
if nb_step != 0:
result['pr_step_ok'] = (float(nb_step_ok)/nb_step)*100
templateLoader = jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)))
templateEnv = jinja2.Environment( loader=templateLoader )
TEMPLATE_FILE = "./template/index-vims-tmpl.html"
template = templateEnv.get_template( TEMPLATE_FILE )
outputText = template.render( scenario_results = scenario_results, step_order = step_order, installer = installer)
with open("./release/master/index-vims-" + installer + ".html", "wb") as fh:
fh.write(outputText)
|