From 6e5a5f883300f51ae914e6084385d4bee69e8555 Mon Sep 17 00:00:00 2001 From: boucherv <valentin.boucher@orange.com> Date: Sat, 12 Mar 2016 22:47:46 +0100 Subject: Organization of reporting files Change-Id: I2761528ca988f10deb112aab567bfd0ee407d072 Signed-off-by: boucherv <valentin.boucher@orange.com> --- utils/test/reporting/index-tmpl.html | 91 ------------------------------- utils/test/reporting/index-vims-tmpl.html | 91 +++++++++++++++++++++++++++++++ utils/test/reporting/reporting-vims.py | 83 ++++++++++++++++++++++++++++ utils/test/reporting/reporting.py | 83 ---------------------------- 4 files changed, 174 insertions(+), 174 deletions(-) delete mode 100644 utils/test/reporting/index-tmpl.html create mode 100644 utils/test/reporting/index-vims-tmpl.html create mode 100644 utils/test/reporting/reporting-vims.py delete mode 100644 utils/test/reporting/reporting.py (limited to 'utils/test') diff --git a/utils/test/reporting/index-tmpl.html b/utils/test/reporting/index-tmpl.html deleted file mode 100644 index 4d1c50915..000000000 --- a/utils/test/reporting/index-tmpl.html +++ /dev/null @@ -1,91 +0,0 @@ - <html> - <head> - <meta charset="utf-8"> - <!-- Bootstrap core CSS --> - <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"> - <link href="default.css" rel="stylesheet"> - <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> - <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> - <script type="text/javascript"> - $(document).ready(function (){ - $(".btn-more").click(function() { - $(this).hide(); - $(this).parent().find(".panel-default").show(); - }); - }) - </script> - </head> - <body> - <div class="container"> - <div class="masthead"> - <h3 class="text-muted">vIMS status page</h3> - <nav> - <ul class="nav nav-justified"> - <li class="active"><a href="#">Home</a></li> - <li><a href="index-fuel.html">Fuel</a></li> - <li><a href="index-compass.html">Compass</a></li> - <li><a href="index-joid.html">JOID</a></li> - <li><a href="index-apex.html">APEX</a></li> - </ul> - </nav> - </div> -<div class="row"> - <div class="col-md-1"></div> - <div class="col-md-10"> - <div class="page-header"> - <h2>{{installer}}</h2> - </div> - {% for scenario_name, results in scenario_results.iteritems() -%} - <div class="scenario-part"> - <div class="page-header"> - <h3><span class="glyphicon glyphicon-chevron-right"> <b>{{scenario_name}}</b></h3> - </div> - {% for result in results -%} - {% if loop.index > 2 -%} - <div class="panel panel-default" hidden> - {%- else -%} - <div class="panel panel-default"> - {%- endif %} - <div class="panel-heading"> - <div class="progress-bar" role="progressbar" aria-valuenow="{{result.pr_step_ok}}" aria-valuemin="0" aria-valuemax="100" style="width: {{result.pr_step_ok}}%"></div> - <span class="panel-header-item"> - <h4><b>{{result.creation_date}}</b></h4> - </span> - <span class="badge panel-pod-name">{{result.pod_name}}</span> - </div> - <table class="table"> - <tr> - <th width="20%">Step</th> - <th width="10%">Status</th> - <th width="10%">Duration</th> - <th width="60%">Result</th> - </tr> - {% for step_od_name in step_order -%} - {% if step_od_name in result.details.keys() -%} - {% set step_result = result.details[step_od_name] -%} - {% if step_result.duration != 0 -%} - <tr class="tr-ok"> - <td>{{step_od_name}}</td> - <td><span class="glyphicon glyphicon-ok"></td> - <td><b>{{step_result.duration_display}}</b></td> - <td>{{step_result.result}}</td> - </tr> - {%- else -%} - <tr class="tr-danger"> - <td>{{step_od_name}}</td> - <td><span class="glyphicon glyphicon-remove"></td> - <td><b>0s</b></td> - <td>{{step_result.result}}</td> - </tr> - {%- endif %} - {%- endif %} - {%- endfor %} - </table> - </div> - {%- endfor %} - <button type="button" class="btn btn-more">More than two</button> - </div> - {%- endfor %} - </div> - <div class="col-md-1"></div> -</div> \ No newline at end of file diff --git a/utils/test/reporting/index-vims-tmpl.html b/utils/test/reporting/index-vims-tmpl.html new file mode 100644 index 000000000..4d1c50915 --- /dev/null +++ b/utils/test/reporting/index-vims-tmpl.html @@ -0,0 +1,91 @@ + <html> + <head> + <meta charset="utf-8"> + <!-- Bootstrap core CSS --> + <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"> + <link href="default.css" rel="stylesheet"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> + <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> + <script type="text/javascript"> + $(document).ready(function (){ + $(".btn-more").click(function() { + $(this).hide(); + $(this).parent().find(".panel-default").show(); + }); + }) + </script> + </head> + <body> + <div class="container"> + <div class="masthead"> + <h3 class="text-muted">vIMS status page</h3> + <nav> + <ul class="nav nav-justified"> + <li class="active"><a href="#">Home</a></li> + <li><a href="index-fuel.html">Fuel</a></li> + <li><a href="index-compass.html">Compass</a></li> + <li><a href="index-joid.html">JOID</a></li> + <li><a href="index-apex.html">APEX</a></li> + </ul> + </nav> + </div> +<div class="row"> + <div class="col-md-1"></div> + <div class="col-md-10"> + <div class="page-header"> + <h2>{{installer}}</h2> + </div> + {% for scenario_name, results in scenario_results.iteritems() -%} + <div class="scenario-part"> + <div class="page-header"> + <h3><span class="glyphicon glyphicon-chevron-right"> <b>{{scenario_name}}</b></h3> + </div> + {% for result in results -%} + {% if loop.index > 2 -%} + <div class="panel panel-default" hidden> + {%- else -%} + <div class="panel panel-default"> + {%- endif %} + <div class="panel-heading"> + <div class="progress-bar" role="progressbar" aria-valuenow="{{result.pr_step_ok}}" aria-valuemin="0" aria-valuemax="100" style="width: {{result.pr_step_ok}}%"></div> + <span class="panel-header-item"> + <h4><b>{{result.creation_date}}</b></h4> + </span> + <span class="badge panel-pod-name">{{result.pod_name}}</span> + </div> + <table class="table"> + <tr> + <th width="20%">Step</th> + <th width="10%">Status</th> + <th width="10%">Duration</th> + <th width="60%">Result</th> + </tr> + {% for step_od_name in step_order -%} + {% if step_od_name in result.details.keys() -%} + {% set step_result = result.details[step_od_name] -%} + {% if step_result.duration != 0 -%} + <tr class="tr-ok"> + <td>{{step_od_name}}</td> + <td><span class="glyphicon glyphicon-ok"></td> + <td><b>{{step_result.duration_display}}</b></td> + <td>{{step_result.result}}</td> + </tr> + {%- else -%} + <tr class="tr-danger"> + <td>{{step_od_name}}</td> + <td><span class="glyphicon glyphicon-remove"></td> + <td><b>0s</b></td> + <td>{{step_result.result}}</td> + </tr> + {%- endif %} + {%- endif %} + {%- endfor %} + </table> + </div> + {%- endfor %} + <button type="button" class="btn btn-more">More than two</button> + </div> + {%- endfor %} + </div> + <div class="col-md-1"></div> +</div> \ No newline at end of file diff --git a/utils/test/reporting/reporting-vims.py b/utils/test/reporting/reporting-vims.py new file mode 100644 index 000000000..cf43f3ebc --- /dev/null +++ b/utils/test/reporting/reporting-vims.py @@ -0,0 +1,83 @@ +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/testapi/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['test_results'] + test_results.reverse() + + 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["creation_date"] = result["creation_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 = "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("index-vims" + installer + ".html", "wb") as fh: + fh.write(outputText) + + diff --git a/utils/test/reporting/reporting.py b/utils/test/reporting/reporting.py deleted file mode 100644 index 246c6250c..000000000 --- a/utils/test/reporting/reporting.py +++ /dev/null @@ -1,83 +0,0 @@ -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/testapi/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['test_results'] - test_results.reverse() - - 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["creation_date"] = result["creation_date"].split(".")[0] - sig_test = result['details']['sig_test']['result'] - if not sig_test == "": - 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 = "index-tmpl.html" - template = templateEnv.get_template( TEMPLATE_FILE ) - - outputText = template.render( scenario_results = scenario_results, step_order = step_order, installer = installer) - - with open("index-" + installer + ".html", "wb") as fh: - fh.write(outputText) - - -- cgit