X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest_kubernetes%2Fcnf_conformance%2Fconformance.py;h=2cf4baa990698d1057bbf5df45f81a9429662a44;hb=90b94750e10a3d70d148232822776351a917d075;hp=0a74ccf66b5069d2f9f68c4b0272380be086717d;hpb=c35c6d443eb93db318c3436d995809dfe7e8389f;p=functest-kubernetes.git diff --git a/functest_kubernetes/cnf_conformance/conformance.py b/functest_kubernetes/cnf_conformance/conformance.py index 0a74ccf6..2cf4baa9 100644 --- a/functest_kubernetes/cnf_conformance/conformance.py +++ b/functest_kubernetes/cnf_conformance/conformance.py @@ -43,7 +43,7 @@ class CNFConformance(testcase.TestCase): __logger = logging.getLogger(__name__) def __init__(self, **kwargs): - super(CNFConformance, self).__init__(**kwargs) + super().__init__(**kwargs) self.output_log_name = 'functest-kubernetes.log' self.output_debug_log_name = 'functest-kubernetes.debug.log' @@ -76,18 +76,27 @@ class CNFConformance(testcase.TestCase): lfiles = glob.glob(os.path.join( self.src_dir, 'results', 'cnf-testsuite-results-*.yml')) results = max(lfiles, key=os.path.getmtime) - with open(os.path.join(self.src_dir, 'results', results)) as yfile: + with open(os.path.join( + self.src_dir, 'results', results), encoding='utf-8') as yfile: self.details = yaml.safe_load(yfile) msg = prettytable.PrettyTable( header_style='upper', padding_width=5, field_names=['name', 'status']) + item_criteria = 0 for item in self.details['items']: msg.add_row([item['name'], item['status']]) + if item['status'] == "passed": + item_criteria += 1 + else: + self.__logger.warning( + "%s %s", item['name'], item['status']) self.__logger.info("\n\n%s\n", msg.get_string()) grp = re.search( r'Final .* score: (\d+) of (\d+)', output.decode("utf-8")) if grp: self.result = int(grp.group(1)) / int(grp.group(2)) * 100 + else: + self.result = item_criteria / len(self.details['items']) * 100 if not os.path.exists(self.res_dir): os.makedirs(self.res_dir) shutil.copy2( @@ -100,6 +109,10 @@ class CNFConformance(testcase.TestCase): try: self.setup() self.run_conformance(**kwargs) + except subprocess.CalledProcessError as exc: + self.__logger.exception( + "Can not run CNT Conformance: \n%s\n%s\n", + " ".join(exc.cmd), exc.output.decode("utf-8")) except Exception: # pylint: disable=broad-except self.__logger.exception("Can not run CNF Conformance") self.stop_time = time.time()