[FIX] base_module_quality: log, fix workflow test

When no wkf_ids are located for the module, search() must be skipped and
have instead an empty list of activities. Otherwise, all the activities
for all modules would be selected, breaking the test

bzr revid: xrg@hellug.gr-20100902210451-30eaz5vdtplhjlgr
This commit is contained in:
xrg@hellug.gr 2010-09-03 00:04:51 +03:00
parent d67d284e00
commit 7d57771833
2 changed files with 13 additions and 3 deletions

View File

@ -26,6 +26,7 @@ import tools
from tools import config
from tools.translate import _
from osv import osv, fields
import logging
class abstract_quality_check(object):
'''
@ -80,6 +81,7 @@ class abstract_quality_check(object):
#This variable used to give message if test result is good or not
self.message = ''
self.log = logging.getLogger('module.quality')
#The tests have to subscribe itselfs in this list, that contains
#all the test that have to be performed.
@ -111,9 +113,11 @@ class abstract_quality_check(object):
model_data = pool.get('ir.model.data').browse(cr, uid, ids2)
for model in model_data:
model_list.append(model.res_id)
self.log.debug('get_objects() model_list: %s', ','.join(model_list))
obj_list = []
for mod in pool.get('ir.model').browse(cr, uid, model_list):
obj_list.append(str(mod.model))
self.log.debug('get_objects() obj_list: %s', ','.join(obj_list))
return obj_list
def get_model_ids(self, cr, uid, models=[]):
@ -121,6 +125,7 @@ class abstract_quality_check(object):
if not models:
return []
pool = pooler.get_pool(cr.dbname)
self.log.debug('get_model_ids([%s])', ', '.join(models))
return pool.get('ir.model').search(cr, uid, [('model', 'in', models)])
def get_ids(self, cr, uid, object_list):

View File

@ -74,9 +74,14 @@ class quality_test(base_module_quality.abstract_quality_check):
wkf_ids = map(lambda x:x['id'], wkfs)
if not wkf_ids:
result_dict[module_name] = [module_name, 'No workflow defined on module']
#Activity of workflow checking...
activity_ids = wkf_activity_obj.search(cr, uid, [('wkf_id', 'in', wkf_ids)])
activities = wkf_activity_obj.browse(cr, uid, activity_ids)
activity_ids = []
activities = []
else:
#Activity of workflow checking...
activity_ids = wkf_activity_obj.search(cr, uid, [('wkf_id', 'in', wkf_ids)])
activities = wkf_activity_obj.browse(cr, uid, activity_ids)
self.log.debug("quality test: wkf_ids = %r", wkf_ids)
self.log.debug("quality test: activity_ids = %r", activity_ids)
for activity in activities:
if activity.flow_start:
activity_chk[activity.wkf_id.osv]['start'] = 'ok'