summaryrefslogtreecommitdiff
path: root/addons/base_module_quality/base_module_quality.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/base_module_quality/base_module_quality.py')
-rw-r--r--addons/base_module_quality/base_module_quality.py77
1 files changed, 24 insertions, 53 deletions
diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py
index 0564d7c9066..4590a51dfe3 100644
--- a/addons/base_module_quality/base_module_quality.py
+++ b/addons/base_module_quality/base_module_quality.py
@@ -21,38 +21,29 @@
##############################################################################
import pooler
import os
+import osv
from tools import config
class abstract_quality_check(object):
'''
- This Class provide...
+ This Class provides...
'''
-# #This float have to store the rating of the module.
-# #Used to compute the final score (average of all scores).
-# score = 0.0
-#
-# #This char have to store the result.
-# #Used to display the result of the test.
-# result = ""
-#
-# #This char have to store the result with more details.
-# #Used to provide more details if necessary.
-# result_details = ""
-#
-# #This bool defines if the test can be run only if the module is installed.
-# #True => the module have to be installed.
-# #False => the module can be uninstalled.
-# bool_installed_only = True
-
def __init__(self):
'''
this method should initialize the var
'''
#This float have to store the rating of the module.
#Used to compute the final score (average of all scores).
+ #0 <= self.score <= 1
self.score = 0.0
+ #This char have to store the name of the test.
+ self.name = ""
+
+ #This char have to store the aim of the test and eventually a note.
+ self.note = ""
+
#This char have to store the result.
#Used to display the result of the test.
self.result = ""
@@ -66,13 +57,13 @@ class abstract_quality_check(object):
#False => the module can be uninstalled.
self.bool_installed_only = True
-
#This variable is use to make result of test should have more weight (Some tests are more critical than others)
- self.ponderation = 0.0
+ self.ponderation = 1.0
#Specify test got an error on module
self.error = False
+ #The tests have to subscribe itselfs in this list, that contains all the test that have to be performed.
self.tests = []
self.list_folders = os.listdir(config['addons_path']+'/base_module_quality/')
for item in self.list_folders:
@@ -86,11 +77,12 @@ class abstract_quality_check(object):
self.tests.append(x3)
# raise 'Not Implemented'
- def run_test(self, cr, uid, module_path="", module_state=""):
+ def run_test(self, cr, uid, module_path=""):
'''
this method should do the test and fill the score, result and result_details var
'''
-# raise 'Not Implemented'
+
+ raise osv.except_osv(_('Programming Error'), _('Test Is Not Implemented'))
def get_objects(self, cr, uid, module):
# This function returns all object of the given module..
@@ -114,40 +106,19 @@ class abstract_quality_check(object):
result_ids[obj] = ids
return result_ids
- def format_table(self, test='', header=[], data_list=[]):
- res_format = {}
- if test=='method':
- detail = ""
- detail += "\n===Method Test===\n"
- res_format['detail'] = detail
- if not data_list[2]:
- detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % (header[0].ljust(40), header[1].ljust(16), header[2].ljust(20), header[3].ljust(16))
- for res in data_list[1]:
- detail += ('\n|-\n| %s \n| %s \n| %s \n| %s ') % (res, data_list[1][res][0], data_list[1][res][1], data_list[1][res][2])
- res_format['detail'] = detail + '\n|}'
- res_format['summary'] = data_list[0]
- elif test=='pylint':
- res_format['summary'] = data_list[0]
- res_format['detail'] = data_list[1]
- elif test=='speed':
- detail = ""
- detail += "\n===Speed Test===\n"
- res_format['detail'] = detail
- if not data_list[2]:
- detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % (header[0].ljust(40), header[1].ljust(10), header[2].ljust(10), header[3].ljust(10), header[4].ljust(10), header[5].ljust(20))
- for data in data_list[1]:
- 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])
- res_format['detail'] = detail + '\n|}\n'
- res_format['summary'] = data_list[0]
- elif test=='terp':
- res_format['summary'] = data_list[0]
- res_format['detail'] = data_list[1]
- return res_format
+ def format_table(self, header=[], data_list=[]):
+ detail = ""
+ detail += (header[0]) % tuple(header[1])
+ frow = '\n|-'
+ for i in header[1]:
+ frow += '\n| %s'
+ for key, value in data_list.items():
+ detail += (frow) % tuple(value)
+ detail = detail + '\n|}'
+ return detail
def add_quatation(self, x, y):
return x/y
-
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: