diff options
| author | mra (Open ERP) <mra@tinyerp.com> | 2009-07-03 10:50:40 +0530 |
|---|---|---|
| committer | mra (Open ERP) <mra@tinyerp.com> | 2009-07-03 10:50:40 +0530 |
| commit | 484d021700986e73aa15534cb7303b0457e1a4df (patch) | |
| tree | b2f6a99093affd36b2e26cd66f4ffd13a62ad24f /addons/base_module_quality/method_test/method_test.py | |
| parent | a3b98e29d585bc1fca4df4613bb8b54306740822 (diff) | |
[ADD] add base_module_quality module
bzr revid: mra@tinyerp.com-20090703052040-3rokridr4h3z33xj
Diffstat (limited to 'addons/base_module_quality/method_test/method_test.py')
| -rw-r--r-- | addons/base_module_quality/method_test/method_test.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/addons/base_module_quality/method_test/method_test.py b/addons/base_module_quality/method_test/method_test.py new file mode 100644 index 00000000000..31719958c03 --- /dev/null +++ b/addons/base_module_quality/method_test/method_test.py @@ -0,0 +1,85 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from tools.translate import _ + +from base_module_quality import base_module_quality +import pooler + +class quality_test(base_module_quality.abstract_quality_check): + + def __init__(self): + super(quality_test, self).__init__() + self.name = _("Method Test") + self.note = _(""" +This test checks if the module classes are raising exception when calling basic methods or not. +""") + self.bool_installed_only = True + return None + + def run_test(self, cr, uid, module_path): + pool = pooler.get_pool(cr.dbname) + module_name = module_path.split('/')[-1] + obj_list = self.get_objects(cr, uid, module_name) + result_dict = {} + if not obj_list: + self.error = True + self.result = _("Module has no objects") + return None + ok_count = 0 + ex_count = 0 + for obj in obj_list: + temp = [obj] + try: + pool.get(obj).search(cr, uid, []) + temp.append(_('Ok')) + ok_count += 1 + except: + temp.append(_('Exception')) + ex_count += 1 + try: + pool.get(obj).fields_view_get(cr, uid,) + temp.append(_('Ok')) + ok_count += 1 + except: + temp.append(_('Exception')) + ex_count += 1 + try: + pool.get(obj).read(cr, uid, []) + temp.append(_('Ok')) + ok_count += 1 + except: + temp.append(_('Exception')) + ex_count += 1 + result_dict[obj] = temp + self.score = (ok_count + ex_count) and float(ok_count)/float(ok_count + ex_count) or 0.0 + self.result = self.get_result(result_dict) + return None + + def get_result(self, dict_method): + header = ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ', [_('Object Name'), 'search()', 'fields_view_get()', 'read()']) + detail = "" + if not self.error: + detail += self.format_table(header, dict_method) + return detail + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file |
