From 1d2fef3edfc768aa681dd609db2516d34fae27a0 Mon Sep 17 00:00:00 2001 From: "mra (Open ERP)" Date: Wed, 7 Jan 2009 18:37:53 +0530 Subject: [PATCH] quality module bzr revid: mra@tinyerp.com-20090107130753-n0or93qkfcuj96b6 --- .../base_module_quality.py | 19 +++++------ .../method_test/method_test.py | 12 +++++-- .../speed_test/speed_test.py | 34 ++++++++----------- 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py index 21c17e99a1e..6db637ab32e 100644 --- a/addons/base_module_quality/base_module_quality.py +++ b/addons/base_module_quality/base_module_quality.py @@ -103,16 +103,15 @@ class abstract_quality_check(object): def format_table(self, header=[], data_list=[]): detail = "" - if header[0]=='method': - detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % (header[1].ljust(40), header[2].ljust(16), header[3].ljust(20), header[4].ljust(16)) - for res in data_list[0]: - detail += ('\n|-\n| %s \n| %s \n| %s \n| %s ') % (res, data_list[0][res][0], data_list[0][res][1], data_list[0][res][2]) - detail = detail + '\n|}' - elif header[0]=='speed': - detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % (header[1].ljust(40), header[2].ljust(10), header[3].ljust(10), header[4].ljust(10), header[5].ljust(10), header[6].ljust(20)) - for data in data_list[0]: - detail += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (data[0], data[1], data[2], data[3], data[4], data[5]) - detail = detail + '\n|}\n' + header_list = [] + final_list = [] + for head in data_list[1]: + header_list.append(head) + detail += (header[0]) % tuple(header_list) + for res in data_list[0]: + data_list[0][res].append(res) + detail += (header[1]) % tuple(data_list[0][res]) + detail = detail + '\n|}' return detail def add_quatation(self, x, y): diff --git a/addons/base_module_quality/method_test/method_test.py b/addons/base_module_quality/method_test/method_test.py index 5c244309b14..8ca77b996f5 100644 --- a/addons/base_module_quality/method_test/method_test.py +++ b/addons/base_module_quality/method_test/method_test.py @@ -35,6 +35,7 @@ class quality_test(base_module_quality.abstract_quality_check): self.bool_installed_only = True self.ponderation = 1.0 self.result_det = {} + self.data_list = [] return None def run_test(self, cr, uid, module_path): @@ -67,6 +68,7 @@ class quality_test(base_module_quality.abstract_quality_check): temp.append('Exception') ex_count += 1 self.result_det[obj] = temp + self.data_list.append(self.result_det) self.score = (ok_count + ex_count) and float(ok_count)/float(ok_count + ex_count) or 0.0 self.result = self.get_result() self.result_details = self.get_result_details() @@ -79,10 +81,14 @@ This test checks if the module classes are raising exception when calling basic return summary def get_result_details(self): - header_list = ['method', 'Object Name', 'search()', 'fields_view_get', 'read'] - detail = "" #"\n===Method Test===\n" + header_list = [] + header_list.append('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') + header_list.append('\n|-\n| %s \n| %s \n| %s \n| %s ') + header_view = ['Object Name', 'search()', 'fields_view_get', 'read'] + self.data_list.append(header_view) + detail = "" if not self.error: - detail += self.format_table(header=header_list, data_list=[self.result_det]) + detail += self.format_table(header=header_list, data_list=self.data_list) return detail # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_module_quality/speed_test/speed_test.py b/addons/base_module_quality/speed_test/speed_test.py index 7ea7d5dd72b..d631ab2c96b 100644 --- a/addons/base_module_quality/speed_test/speed_test.py +++ b/addons/base_module_quality/speed_test/speed_test.py @@ -38,7 +38,8 @@ class quality_test(base_module_quality.abstract_quality_check): self.name = _("Speed Test") self.bool_installed_only = True self.ponderation = 1.0 - self.listdata = [] + self.result_det = {} + self.data_list = [] return None def run_test(self, cr, uid, module_path): pool = pooler.get_pool(cr.dbname) @@ -69,8 +70,8 @@ class quality_test(base_module_quality.abstract_quality_check): if size < 5: self.score += -2 - list = [obj, size, code_base_complexity, code_half_complexity, code_size_complexity, "Warning! Not enough demo data"] - self.listdata.append(list) + list = [size, code_base_complexity, code_half_complexity, code_size_complexity, "Warning! Not enough demo data"] + self.result_det[obj] = list else: if code_size_complexity <= (code_base_complexity + size): complexity = "O(1)" @@ -78,12 +79,13 @@ class quality_test(base_module_quality.abstract_quality_check): else: complexity = "O(n) or worst" score = 0 - list = [obj, size, code_base_complexity, code_half_complexity, code_size_complexity, complexity] - self.listdata.append(list) + list = [size, code_base_complexity, code_half_complexity, code_size_complexity, complexity] + self.result_det[obj] = list else: score += -5 - list = [obj, size, "", "", "", "Warning! Object has no demo data"] - self.listdata.append(list) + list = [size, "", "", "", "Warning! Object has no demo data"] + self.result_det[obj] = list + self.data_list.append(self.result_det) self.score = obj_counter and score/obj_counter or 0.0 self.result = self.get_result() self.result_details = self.get_result_details() @@ -91,26 +93,20 @@ class quality_test(base_module_quality.abstract_quality_check): return None def get_result(self): -## self.run_test(cr, uid, module_path) -# if not self.bool_installed_only or module_state=="installed": summary = """ This test checks the speed of the module. - """ -# else: -# summary =""" \n===Speed Test===: -# -#The module has to be installed before running this test.\n\n """ -# header_list = "" -# self.error = True return summary def get_result_details(self): - header_list = ['speed', 'Object Name', 'Size-Number of Records (S)', '1', 'S/2', 'S', 'Complexity using query'] + header_list = [] + header_list.append('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') + header_list.append('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') + header_view = ['Object Name', 'Size-Number of Records (S)', '1', 'S/2', 'S', 'Complexity using query'] detail = "" -# detail += "\n===Speed Test===\n" + self.data_list.append(header_view) if not self.error: - detail += self.format_table(header=header_list, data_list=[self.listdata]) + detail += self.format_table(header=header_list, data_list=self.data_list) return detail # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: