summaryrefslogtreecommitdiff
path: root/addons/base_module_quality/base_module_quality.py
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2008-12-29 18:28:57 +0100
committerFabien Pinckaers <fp@tinyerp.com>2008-12-29 18:28:57 +0100
commitd47f1b6650fd8521656710f767838d2935f8eb8a (patch)
tree215e151934a2b84e0d8d213d3729cbc03f33eee8 /addons/base_module_quality/base_module_quality.py
parent028a994fe916a2a12f6678698a6a2b2ad3c8fed8 (diff)
parent9dac7587aaafb5294abb840191c77e9517482a74 (diff)
modifs
bzr revid: fp@tinyerp.com-20081229172857-rwpkla4hmala06vh
Diffstat (limited to 'addons/base_module_quality/base_module_quality.py')
-rw-r--r--addons/base_module_quality/base_module_quality.py97
1 files changed, 78 insertions, 19 deletions
diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py
index ef4a0c3c515..1a84f35b67a 100644
--- a/addons/base_module_quality/base_module_quality.py
+++ b/addons/base_module_quality/base_module_quality.py
@@ -20,40 +20,70 @@
#
##############################################################################
import pooler
+import os
+from tools import config
class abstract_quality_check(object):
'''
This Class provide...
'''
- #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
+# #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
'''
- raise 'Not Implemented'
+ #This float have to store the rating of the module.
+ #Used to compute the final score (average of all scores).
+ self.score = 0.0
+
+ #This char have to store the result.
+ #Used to display the result of the test.
+ self.result = ""
- def run_test(self, cr, uid, module_path=""):
+ #This char have to store the result with more details.
+ #Used to provide more details if necessary.
+ self.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.
+ self.bool_installed_only = True
+
+ self.tests = []
+ self.list_folders = os.listdir(config['addons_path']+'/base_module_quality/')
+ for item in self.list_folders:
+ self.item = item
+ path = config['addons_path']+'/base_module_quality/'+item
+ if os.path.exists(path+'/'+item+'.py') and item not in ['report', 'wizard', 'security']:
+ item2 = 'base_module_quality.' + item +'.' + item
+ x = __import__(item2)
+ x2 = getattr(x, item)
+ x3 = getattr(x2, item)
+ self.tests.append(x3)
+# raise 'Not Implemented'
+
+ def run_test(self, cr, uid, module_path="", module_state=""):
'''
this method should do the test and fill the score, result and result_details var
'''
- raise 'Not Implemented'
+# raise 'Not Implemented'
def get_objects(self, cr, uid, module):
# This function returns all object of the given module..
@@ -77,5 +107,34 @@ 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]
+ return res_format
+
+
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: