summaryrefslogtreecommitdiff
path: root/addons/base_module_quality
diff options
context:
space:
mode:
authormra (Open ERP) <mra@tinyerp.com>2008-12-24 19:21:31 +0530
committermra (Open ERP) <mra@tinyerp.com>2008-12-24 19:21:31 +0530
commitdfb4a39b6b67bc6ff7adc7c538b76eeb8019fa50 (patch)
tree3a2f25ef8f1d2baedbfc5e3d755fe01915795248 /addons/base_module_quality
parenta5d8cf5d2c8a6de68fe5d0cead394a056ff1688d (diff)
base module quality
bzr revid: mra@tinyerp.com-20081224135131-7keeqeyqf168g5e1
Diffstat (limited to 'addons/base_module_quality')
-rw-r--r--addons/base_module_quality/__terp__.py2
-rw-r--r--addons/base_module_quality/base_module_quality.py26
-rw-r--r--addons/base_module_quality/base_module_quality_wizard.xml2
-rw-r--r--addons/base_module_quality/method_test/method_test.py11
-rw-r--r--addons/base_module_quality/security/ir.model.access.csv2
-rw-r--r--addons/base_module_quality/speed_test/speed_test.py17
6 files changed, 33 insertions, 27 deletions
diff --git a/addons/base_module_quality/__terp__.py b/addons/base_module_quality/__terp__.py
index 4a4d5b9fc60..5588ab05780 100644
--- a/addons/base_module_quality/__terp__.py
+++ b/addons/base_module_quality/__terp__.py
@@ -34,7 +34,7 @@ This module's aim is to check the quality of other modules.
""",
"init_xml" : [],
- "update_xml" : ["base_module_quality_wizard.xml"],
+ "update_xml" : ["base_module_quality_wizard.xml", "security/ir.model.access.csv",],
"category" : "Tiny Specific Modules/Base module quality",
"active": False,
"installable": True
diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py
index 195e345e8ef..ef4a0c3c515 100644
--- a/addons/base_module_quality/base_module_quality.py
+++ b/addons/base_module_quality/base_module_quality.py
@@ -19,7 +19,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-
+import pooler
class abstract_quality_check(object):
'''
@@ -41,11 +41,11 @@ class abstract_quality_check(object):
#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
+ bool_installed_only = True
def __init__(self):
'''
- this method should initialize the var
+ this method should initialize the var
'''
raise 'Not Implemented'
@@ -55,7 +55,27 @@ class abstract_quality_check(object):
'''
raise 'Not Implemented'
+ def get_objects(self, cr, uid, module):
+ # This function returns all object of the given module..
+ pool = pooler.get_pool(cr.dbname)
+ ids2 = pool.get('ir.model.data').search(cr, uid, [('module','=', module), ('model','=','ir.model')])
+ model_list = []
+ model_data = pool.get('ir.model.data').browse(cr, uid, ids2)
+ for model in model_data:
+ model_list.append(model.res_id)
+ obj_list = []
+ for mod in pool.get('ir.model').browse(cr, uid, model_list):
+ obj_list.append(str(mod.model))
+ return obj_list
+ def get_ids(self, cr, uid, object_list):
+ #This method return dictionary with ids of records of object for module
+ pool = pooler.get_pool(cr.dbname)
+ result_ids = {}
+ for obj in object_list:
+ ids = pool.get(obj).search(cr, uid, [])
+ result_ids[obj] = ids
+ return result_ids
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_module_quality/base_module_quality_wizard.xml b/addons/base_module_quality/base_module_quality_wizard.xml
index c99b949be35..b49c17667a7 100644
--- a/addons/base_module_quality/base_module_quality_wizard.xml
+++ b/addons/base_module_quality/base_module_quality_wizard.xml
@@ -16,7 +16,7 @@
</record>
<act_window
id="act_view_wiz_quality_check"
- name="Wizard Quality Check"
+ name="Quality Check"
res_model="wizard.quality.check"
src_model="ir.module.module"
target="new"
diff --git a/addons/base_module_quality/method_test/method_test.py b/addons/base_module_quality/method_test/method_test.py
index c788d4bc979..0ef59cc2b29 100644
--- a/addons/base_module_quality/method_test/method_test.py
+++ b/addons/base_module_quality/method_test/method_test.py
@@ -42,15 +42,8 @@ This test checks if the module classes are raising exception when calling basic
def run_test(self, cr, uid, module_path):
pool = pooler.get_pool(cr.dbname)
module_name = module_path.split('/')[-1]
- ids2 = pool.get('ir.model.data').search(cr, uid, [('module','=', module_name), ('model','=','ir.model')])
- model_list = []
- model_data = pool.get('ir.model.data').browse(cr, uid, ids2)
- for model in model_data:
- model_list.append(model.res_id)
- obj_list = []
- for mod in pool.get('ir.model').browse(cr, uid, model_list):
- obj_list.append(str(mod.model))
- result={}
+ obj_list = self.get_objects(cr, uid, module_name)
+ result = {}
ok_count = 0
ex_count = 0
diff --git a/addons/base_module_quality/security/ir.model.access.csv b/addons/base_module_quality/security/ir.model.access.csv
new file mode 100644
index 00000000000..748e3895696
--- /dev/null
+++ b/addons/base_module_quality/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+"id","name","model_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_wizard_quality_check","wizard.quality.check","model_wizard_quality_check",1,1,1,1
diff --git a/addons/base_module_quality/speed_test/speed_test.py b/addons/base_module_quality/speed_test/speed_test.py
index 65036a5c90d..55c05e594b9 100644
--- a/addons/base_module_quality/speed_test/speed_test.py
+++ b/addons/base_module_quality/speed_test/speed_test.py
@@ -47,20 +47,13 @@ This test checks the speed of the module.
pool = pooler.get_pool(cr.dbname)
module_name = module_path.split('/')[-1]
self.result+=('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % ('Object Name'.ljust(40), 'Size (S)'.ljust(10), '1'.ljust(10), 'S/2'.ljust(10), 'S'.ljust(10), 'Complexity'.ljust(20))
- ids2 = pool.get('ir.model.data').search(cr, uid, [('module','=', module_name), ('model','=','ir.model')])
- model_data = pool.get('ir.model.data').browse(cr, uid, ids2)
- model_list = []
- for model in model_data:
- model_list.append(model.res_id)
- obj_list = []
- for mod in pool.get('ir.model').browse(cr, uid, model_list):
- obj_list.append(str(mod.model))
-
+ obj_list = self.get_objects(cr, uid, module_name)
obj_counter = 0
score = 0
- for obj in obj_list:
+ obj_ids = self.get_ids(cr, uid, obj_list)
+ for obj in obj_ids:
obj_counter += 1
- ids = pool.get(obj).search(cr, uid, [])
+ ids = obj_ids[obj]
ids = ids[:100]
size = len(ids)
if size:
@@ -68,12 +61,10 @@ This test checks the speed of the module.
pool.get(obj).read(cr, uid, ids[0])
c2 = time.time()
base_time = c2 - c1
-
c1 = time.time()
pool.get(obj).read(cr, uid, ids[:size/2])
c2 = time.time()
halfsize_time = c2 - c1
-
c1 = time.time()
pool.get(obj).read(cr, uid, ids)
c2 = time.time()