From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 1179A2C37 for ; Thu, 4 Aug 2016 07:38:41 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP; 03 Aug 2016 22:38:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,469,1464678000"; d="scan'208";a="743977351" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by FMSMGA003.fm.intel.com with ESMTP; 03 Aug 2016 22:38:40 -0700 Received: from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com [10.239.29.90]) by shvmail01.sh.intel.com with ESMTP id u745cdir003757; Thu, 4 Aug 2016 13:38:39 +0800 Received: from shecgisg003.sh.intel.com (localhost [127.0.0.1]) by shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id u745cbuQ012755; Thu, 4 Aug 2016 13:38:39 +0800 Received: (from yliu84x@localhost) by shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id u745caYd012751; Thu, 4 Aug 2016 13:38:36 +0800 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Thu, 4 Aug 2016 13:38:19 +0800 Message-Id: <1470289102-12677-7-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1470289102-12677-1-git-send-email-yong.liu@intel.com> References: <1470289102-12677-1-git-send-email-yong.liu@intel.com> Subject: [dts] [PATCH 6/9] framework test_result: add class to handle result X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Aug 2016 05:38:42 -0000 Each suite will own itselves table result and remove table handle function in dts module. Signed-off-by: Marvin Liu diff --git a/framework/test_result.py b/framework/test_result.py index 9cef34c..e5a2b4e 100644 --- a/framework/test_result.py +++ b/framework/test_result.py @@ -32,6 +32,7 @@ """ Generic result container and reporters """ +import texttable # text format class Result(object): @@ -151,13 +152,16 @@ class Result(object): self.__test_result = result self.__message = message + def copy_suite(self, suite_result): + self.__current_suites()[self.__test_suite + 1] = suite_result.__current_cases() + def test_case_passed(self): """ Set last test case added as PASSED """ self.__set_test_case_result(result='PASSED', message='') - def test_case_skip(self,message): + def test_case_skip(self, message): """ set last test case add as N/A """ @@ -290,3 +294,60 @@ class Result(object): message = property(__get_message) nic = property(__get_nic, __set_nic) internals = property(__get_internals) + + +class ResultTable(object): + + def __init__(self, header): + """ + Add the title of result table. + Usage: + rt = ResultTable(header) + rt.add_row(row) + rt.table_print() + """ + self.results_table_rows = [] + self.results_table_rows.append([]) + self.table = texttable.Texttable(max_width=150) + self.results_table_header = header + self.logger = None + self.rst = None + + def set_rst(self, rst): + self.rst = rst + + def set_logger(self, logger): + self.logger = logger + + def add_row(self, row): + """ + Add one row to result table. + """ + self.results_table_rows.append(row) + + def table_print(self): + """ + Show off result table. + """ + self.table.add_rows(self.results_table_rows) + self.table.header(self.results_table_header) + + alignments = [] + # all header align to left + for _ in self.results_table_header: + alignments.append("l") + self.table.set_cols_align(alignments) + + out = self.table.draw() + if self.rst: + self.rst.write_text('\n' + out + '\n\n') + if self.logger: + self.logger.info('\n' + out) + +############################################################################### +############################################################################### +if __name__ == "__main__": + rt = ResultTable(header=['name', 'age']) + rt.add_row(['Jane', '30']) + rt.add_row(['Mark', '32']) + rt.table_print() -- 1.9.3