From d96ec9c680ea3ea5c9d961192a51478593447a3b Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 26 Mar 2013 16:40:06 +0100 Subject: [PATCH 1/5] [REF] logging: removed deprecated Logger class. bzr revid: vmt@openerp.com-20130326154006-s19z7aem22qeboo0 --- openerp/loglevels.py | 61 -------------------------------------------- 1 file changed, 61 deletions(-) diff --git a/openerp/loglevels.py b/openerp/loglevels.py index 3172a2b2042..b58b4d0bfa9 100644 --- a/openerp/loglevels.py +++ b/openerp/loglevels.py @@ -33,67 +33,6 @@ LOG_CRITICAL = 'critical' logging.TEST = logging.INFO - 5 logging.addLevelName(logging.TEST, 'TEST') -_logger = logging.getLogger(__name__) - -class Logger(object): - def __init__(self): - _logger.warning( - "The netsvc.Logger API shouldn't be used anymore, please " - "use the standard `logging.getLogger` API instead.") - super(Logger, self).__init__() - - def notifyChannel(self, name, level, msg): - _logger.warning( - "notifyChannel API shouldn't be used anymore, please use " - "the standard `logging` module instead.") - from service import common - - log = logging.getLogger(__name__ + '.deprecated.' + ustr(name)) - - if level in [LOG_TEST] and not hasattr(log, level): - fct = lambda msg, *args, **kwargs: log.log(getattr(logging, level.upper()), msg, *args, **kwargs) - setattr(log, level, fct) - - - level_method = getattr(log, level) - - if isinstance(msg, Exception): - msg = exception_to_unicode(msg) - - try: - msg = ustr(msg).strip() - if level in (LOG_ERROR, LOG_CRITICAL): # and tools.config.get_misc('debug','env_info',False): - msg = common.exp_get_server_environment() + "\n" + msg - - result = msg.split('\n') - except UnicodeDecodeError: - result = msg.strip().split('\n') - try: - if len(result)>1: - for idx, s in enumerate(result): - level_method('[%02d]: %s' % (idx+1, s,)) - elif result: - level_method(result[0]) - except IOError: - # TODO: perhaps reset the logger streams? - #if logrotate closes our files, we end up here.. - pass - except Exception: - # better ignore the exception and carry on.. - pass - - def set_loglevel(self, level, logger=None): - if logger is not None: - log = logging.getLogger(str(logger)) - else: - log = logging.getLogger() - log.setLevel(logging.INFO) # make sure next msg is printed - log.info("Log level changed to %s" % logging.getLevelName(level)) - log.setLevel(level) - - def shutdown(self): - logging.shutdown() - # TODO get_encodings, ustr and exception_to_unicode were originally from tools.misc. # There are here until we refactor tools so that this module doesn't depends on tools. From c313b4073ae6721b057f1ea2c87b2cc5139776a8 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 26 Mar 2013 16:58:44 +0100 Subject: [PATCH 2/5] [REF] logging: removed pseudo log-level TEST. When --test-enable is used, it is expected that test output is visible, thus using log-level INFO is natural. On the down side you lose the nice blue hint that tests did actually run when --log-level test was given. bzr revid: vmt@openerp.com-20130326155844-83e2tcqokvblr0ln --- openerp/addons/base/ir/ir_mail_server.py | 2 +- openerp/loglevels.py | 5 ----- openerp/modules/loading.py | 2 +- openerp/modules/module.py | 4 ++-- openerp/netsvc.py | 2 -- openerp/tools/config.py | 2 +- openerp/tools/test_reports.py | 6 +++--- openerp/tools/yaml_import.py | 2 +- openerpcommand/initialize.py | 2 +- 9 files changed, 10 insertions(+), 17 deletions(-) diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index 5a3c40552f0..24feefb18ad 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -411,7 +411,7 @@ class ir_mail_server(osv.osv): # Do not actually send emails in testing mode! if getattr(threading.currentThread(), 'testing', False): - _logger.log(logging.TEST, "skip sending email in test mode") + _logger.info("skip sending email in test mode") return message['Message-Id'] # Get SMTP Server Details from Mail Server diff --git a/openerp/loglevels.py b/openerp/loglevels.py index b58b4d0bfa9..fdb32d8d2f0 100644 --- a/openerp/loglevels.py +++ b/openerp/loglevels.py @@ -20,19 +20,14 @@ ############################################################################## import sys -import logging LOG_NOTSET = 'notset' LOG_DEBUG = 'debug' -LOG_TEST = 'test' LOG_INFO = 'info' LOG_WARNING = 'warn' LOG_ERROR = 'error' LOG_CRITICAL = 'critical' -logging.TEST = logging.INFO - 5 -logging.addLevelName(logging.TEST, 'TEST') - # TODO get_encodings, ustr and exception_to_unicode were originally from tools.misc. # There are here until we refactor tools so that this module doesn't depends on tools. diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 07e5c28a925..350452e16c4 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -96,7 +96,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= """ for filename in package.data[kind]: if kind == 'test': - _logger.log(logging.TEST, "module %s: loading %s", module_name, filename) + _logger.info("module %s: loading test %s", module_name, filename) else: _logger.info("module %s: loading %s", module_name, filename) _, ext = os.path.splitext(filename) diff --git a/openerp/modules/module.py b/openerp/modules/module.py index e71c1f1c519..9fdca4a9766 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -503,7 +503,7 @@ def run_unit_tests(module_name): for m in ms: suite.addTests(unittest2.TestLoader().loadTestsFromModule(m)) if ms: - _logger.log(logging.TEST, 'module %s: executing %s `fast_suite` and/or `checks` sub-modules', module_name, len(ms)) + _logger.info('module %s: executing %s `fast_suite` and/or `checks` sub-modules', module_name, len(ms)) # Use a custom stream object to log the test executions. class MyStream(object): def __init__(self): @@ -518,7 +518,7 @@ def run_unit_tests(module_name): if not first: c = '` ' + c first = False - _logger.log(logging.TEST, c) + _logger.info(c) result = unittest2.TextTestRunner(verbosity=2, stream=MyStream()).run(suite) if result.wasSuccessful(): return True diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 6b66830b75e..7b971073275 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -63,7 +63,6 @@ COLOR_PATTERN = "%s%s%%s%s" % (COLOR_SEQ, COLOR_SEQ, RESET_SEQ) LEVEL_COLOR_MAPPING = { logging.DEBUG: (BLUE, DEFAULT), logging.INFO: (GREEN, DEFAULT), - logging.TEST: (WHITE, BLUE), logging.WARNING: (YELLOW, DEFAULT), logging.ERROR: (RED, DEFAULT), logging.CRITICAL: (WHITE, RED), @@ -161,7 +160,6 @@ PSEUDOCONFIG_MAPPER = { 'debug_rpc': ['openerp:DEBUG','openerp.netsvc.rpc.request:DEBUG'], 'debug': ['openerp:DEBUG'], 'debug_sql': ['openerp.sql_db:DEBUG'], - 'test': ['openerp:TEST'], 'info': [], 'warn': ['openerp:WARNING'], 'error': ['openerp:ERROR'], diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 8fd85fa9dae..0ef288a7a3a 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -84,7 +84,7 @@ class configmanager(object): self.config_file = fname self.has_ssl = check_ssl() - self._LOGLEVELS = dict([(getattr(loglevels, 'LOG_%s' % x), getattr(logging, x)) for x in ('CRITICAL', 'ERROR', 'WARNING', 'INFO', 'TEST', 'DEBUG', 'NOTSET')]) + self._LOGLEVELS = dict([(getattr(loglevels, 'LOG_%s' % x), getattr(logging, x)) for x in ('CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG', 'NOTSET')]) version = "%s %s" % (release.description, release.version) self.parser = parser = optparse.OptionParser(version=version, option_class=MyOption) diff --git a/openerp/tools/test_reports.py b/openerp/tools/test_reports.py index 9ec4dab6cc3..14deffb9ec2 100644 --- a/openerp/tools/test_reports.py +++ b/openerp/tools/test_reports.py @@ -49,7 +49,7 @@ def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None): rname_s = rname[7:] else: rname_s = rname - _logger.log(netsvc.logging.TEST, " - Trying %s.create(%r)", rname, ids) + _logger.info(" - Trying %s.create(%r)", rname, ids) res = netsvc.LocalService(rname).create(cr, uid, ids, data, context) if not isinstance(res, tuple): raise RuntimeError("Result of %s.create() should be a (data,format) tuple, now it is a %s" % \ @@ -92,7 +92,7 @@ def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None): _logger.warning("Report %s produced a \"%s\" chunk, cannot examine it", rname, res_format) return False - _logger.log(netsvc.logging.TEST, " + Report %s produced correctly.", rname) + _logger.info(" + Report %s produced correctly.", rname) return True def try_report_action(cr, uid, action_id, active_model=None, active_ids=None, @@ -126,7 +126,7 @@ def try_report_action(cr, uid, action_id, active_model=None, active_ids=None, pool = pooler.get_pool(cr.dbname) def log_test(msg, *args): - _logger.log(netsvc.logging.TEST, " - " + msg, *args) + _logger.info(" - " + msg, *args) datas = {} if active_model: diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 3172caac1f4..2fffb07daaf 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -922,7 +922,7 @@ class YamlInterpreter(object): def yaml_import(cr, module, yamlfile, kind, idref=None, mode='init', noupdate=False, report=None): if idref is None: idref = {} - loglevel = logging.TEST if kind == 'test' else logging.DEBUG + loglevel = logging.INFO if kind == 'test' else logging.DEBUG yaml_string = yamlfile.read() yaml_interpreter = YamlInterpreter(cr, module, idref, mode, filename=yamlfile.name, report=report, noupdate=noupdate, loglevel=loglevel) yaml_interpreter.process(yaml_string) diff --git a/openerpcommand/initialize.py b/openerpcommand/initialize.py index 44fb084bd1e..9822dd5f5b2 100644 --- a/openerpcommand/initialize.py +++ b/openerpcommand/initialize.py @@ -47,7 +47,7 @@ def run(args): config = openerp.tools.config if args.tests: - config['log_handler'] = [':TEST'] + config['log_handler'] = [':INFO'] config['test_enable'] = True config['without_demo'] = False else: From a4fbd26541ddff9e89c20b4fde1fb6be07fa23dd Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 26 Mar 2013 17:20:40 +0100 Subject: [PATCH 3/5] [REF]: use openerp.workflow instead of LocalService("workflow"). bzr revid: vmt@openerp.com-20130326162040-kkq46wrur3pgn6eh --- openerp/addons/base/ir/ir_actions.py | 6 +++--- openerp/addons/base/ir/ir_model.py | 5 ++--- openerp/addons/base/ir/workflow/workflow.py | 8 +++----- openerp/modules/graph.py | 2 -- openerp/modules/migration.py | 2 -- openerp/tools/convert.py | 10 +++++----- openerp/tools/yaml_import.py | 5 ++--- 7 files changed, 15 insertions(+), 23 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 3e29a0a9b97..29cebd81823 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -26,13 +26,14 @@ from socket import gethostname import time from openerp import SUPERUSER_ID -from openerp import netsvc, tools +from openerp import tools from openerp.osv import fields, osv import openerp.report.interface from openerp.report.report_sxw import report_sxw, report_rml from openerp.tools.config import config from openerp.tools.safe_eval import safe_eval as eval from openerp.tools.translate import _ +import openerp.workflow _logger = logging.getLogger(__name__) @@ -645,12 +646,11 @@ class actions_server(osv.osv): _logger.warning('Failed to send email to: %s', addresses) if action.state == 'trigger': - wf_service = netsvc.LocalService("workflow") model = action.wkf_model_id.model m2o_field_name = action.trigger_obj_id.name target_id = obj_pool.read(cr, uid, context.get('active_id'), [m2o_field_name])[m2o_field_name] target_id = target_id[0] if isinstance(target_id,tuple) else target_id - wf_service.trg_validate(uid, model, int(target_id), action.trigger_name, cr) + openerp.workflow.trg_validate(uid, model, int(target_id), action.trigger_name, cr) if action.state == 'sms': #TODO: set the user and password from the system diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index b6bb0c5e227..088dfdd8a3a 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -26,7 +26,7 @@ import types import openerp from openerp import SUPERUSER_ID -from openerp import netsvc, pooler, tools +from openerp import pooler, tools from openerp.osv import fields,osv from openerp.osv.orm import Model from openerp.tools.safe_eval import safe_eval as eval @@ -1047,10 +1047,9 @@ class ir_model_data(osv.osv): wkf_todo.extend(cr.fetchall()) cr.execute("update wkf_transition set condition='True', group_id=NULL, signal=NULL,act_to=act_from,act_from=%s where act_to=%s", (res_id,res_id)) - wf_service = netsvc.LocalService("workflow") for model,res_id in wkf_todo: try: - wf_service.trg_write(uid, model, res_id, cr) + openerp.workflow.trg_write(uid, model, res_id, cr) except Exception: _logger.info('Unable to force processing of workflow for item %s@%s in order to leave activity to be deleted', res_id, model, exc_info=True) diff --git a/openerp/addons/base/ir/workflow/workflow.py b/openerp/addons/base/ir/workflow/workflow.py index 46884c5035b..0ce951940a9 100644 --- a/openerp/addons/base/ir/workflow/workflow.py +++ b/openerp/addons/base/ir/workflow/workflow.py @@ -21,7 +21,7 @@ from openerp.osv import fields, osv from openerp.tools.translate import _ -from openerp import netsvc +import openerp.workflow class workflow(osv.osv): _name = "workflow" @@ -40,8 +40,7 @@ class workflow(osv.osv): def write(self, cr, user, ids, vals, context=None): if not context: context={} - wf_service = netsvc.LocalService("workflow") - wf_service.clear_cache(cr, user) + openerp.workflow.clear_cache(cr, user) return super(workflow, self).write(cr, user, ids, vals, context=context) def get_active_workitems(self, cr, uid, res, res_id, context=None): @@ -62,8 +61,7 @@ class workflow(osv.osv): def create(self, cr, user, vals, context=None): if not context: context={} - wf_service = netsvc.LocalService("workflow") - wf_service.clear_cache(cr, user) + openerp.workflow.clear_cache(cr, user) return super(workflow, self).create(cr, user, vals, context=context) workflow() diff --git a/openerp/modules/graph.py b/openerp/modules/graph.py index 56b17e3239a..0e14480d8ac 100644 --- a/openerp/modules/graph.py +++ b/openerp/modules/graph.py @@ -36,8 +36,6 @@ from openerp.tools.safe_eval import safe_eval as eval import openerp.pooler as pooler from openerp.tools.translate import _ -import openerp.netsvc as netsvc - import zipfile import openerp.release as release diff --git a/openerp/modules/migration.py b/openerp/modules/migration.py index e0faa77c3a4..16de56879b9 100644 --- a/openerp/modules/migration.py +++ b/openerp/modules/migration.py @@ -36,8 +36,6 @@ from openerp.tools.safe_eval import safe_eval as eval import openerp.pooler as pooler from openerp.tools.translate import _ -import openerp.netsvc as netsvc - import zipfile import openerp.release as release diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py index 59e66512da4..b462b6d6aef 100644 --- a/openerp/tools/convert.py +++ b/openerp/tools/convert.py @@ -29,7 +29,9 @@ import sys # for eval context: import time -import openerp.release as release + +import openerp.release +import openerp.workflow import assertion_report @@ -85,7 +87,7 @@ def _get_idref(self, cr, uid, model_str, context, idref): time=time, DateTime=datetime, timedelta=timedelta, - version=release.major_version, + version=openerp.release.major_version, ref=_ref(self, cr), pytz=pytz) if len(model_str): @@ -526,9 +528,7 @@ form: module.record_id""" % (xml_id,) id = _eval_xml(self, rec[0], self.pool, cr, self.uid, self.idref) uid = self.get_uid(cr, self.uid, data_node, rec) - import openerp.netsvc as netsvc - wf_service = netsvc.LocalService("workflow") - wf_service.trg_validate(uid, model, + openerp.workflow.trg_validate(uid, model, id, str(rec.get('action','')), cr) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 2fffb07daaf..5cad12d76c1 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -7,6 +7,7 @@ import logging import openerp.pooler as pooler import openerp.sql_db as sql_db +import openerp.workflow import misc from config import config import yaml_tag @@ -584,9 +585,7 @@ class YamlInterpreter(object): signals=[x['signal'] for x in self.cr.dictfetchall()] if workflow.action not in signals: raise YamlImportException('Incorrect action %s. No such action defined' % workflow.action) - import openerp.netsvc as netsvc - wf_service = netsvc.LocalService("workflow") - wf_service.trg_validate(uid, workflow.model, id, workflow.action, self.cr) + openerp.workflow.trg_validate(uid, workflow.model, id, workflow.action, self.cr) def _eval_params(self, model, params): args = [] From 4ebedfc25d147642a771c70582ba0d952673166f Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Tue, 26 Mar 2013 17:33:36 +0100 Subject: [PATCH 4/5] [REF] netsvc: it seems the re-exports from loglevels are no longer necessary. bzr revid: vmt@openerp.com-20130326163336-61jh2efakhg0gmoi --- openerp/netsvc.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 7b971073275..bed7cd8c8d7 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -38,8 +38,6 @@ try: except ImportError: psutil = None -# TODO modules that import netsvc only for things from loglevels must be changed to use loglevels. -from loglevels import * import tools import openerp From 7b8f4fe5ee6369bb95ca7143b21a7c5b15e70c85 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 27 Mar 2013 16:38:43 +0100 Subject: [PATCH 5/5] [REF] tests: use the openerp.tests namespace for test-related logging. bzr revid: vmt@openerp.com-20130327153843-u62ftp74qv01u1ww --- openerp/addons/base/ir/ir_mail_server.py | 4 +++- openerp/modules/loading.py | 5 +++-- openerp/modules/module.py | 5 +++-- openerp/tools/test_reports.py | 8 +++++--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index 24feefb18ad..10fc5f82187 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -41,6 +41,8 @@ import openerp.tools as tools from openerp.loglevels import ustr _logger = logging.getLogger(__name__) +_test_logger = logging.getLogger('openerp.tests') + class MailDeliveryException(osv.except_osv): """Specific exception subclass for mail delivery errors""" @@ -411,7 +413,7 @@ class ir_mail_server(osv.osv): # Do not actually send emails in testing mode! if getattr(threading.currentThread(), 'testing', False): - _logger.info("skip sending email in test mode") + _test_logger.info("skip sending email in test mode") return message['Message-Id'] # Get SMTP Server Details from Mail Server diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 350452e16c4..9b735f8255c 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -44,6 +44,7 @@ from openerp.modules.module import initialize_sys_path, \ load_openerp_module, init_module_models, adapt_version _logger = logging.getLogger(__name__) +_test_logger = logging.getLogger('openerp.tests') def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=None, report=None): @@ -75,7 +76,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= _load_data(cr, module_name, idref, mode, 'test') return True except Exception: - _logger.exception( + _test_logger.exception( 'module %s: an exception occurred in a test', module_name) return False finally: @@ -96,7 +97,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= """ for filename in package.data[kind]: if kind == 'test': - _logger.info("module %s: loading test %s", module_name, filename) + _test_logger.info("module %s: loading %s", module_name, filename) else: _logger.info("module %s: loading %s", module_name, filename) _, ext = os.path.splitext(filename) diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 9fdca4a9766..cc7b5904c73 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -43,6 +43,7 @@ from cStringIO import StringIO import logging _logger = logging.getLogger(__name__) +_test_logger = logging.getLogger('openerp.tests') _ad = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'addons') # default addons path (base) ad_paths = [] @@ -503,7 +504,7 @@ def run_unit_tests(module_name): for m in ms: suite.addTests(unittest2.TestLoader().loadTestsFromModule(m)) if ms: - _logger.info('module %s: executing %s `fast_suite` and/or `checks` sub-modules', module_name, len(ms)) + _test_logger.info('module %s: executing %s `fast_suite` and/or `checks` sub-modules', module_name, len(ms)) # Use a custom stream object to log the test executions. class MyStream(object): def __init__(self): @@ -518,7 +519,7 @@ def run_unit_tests(module_name): if not first: c = '` ' + c first = False - _logger.info(c) + _test_logger.info(c) result = unittest2.TextTestRunner(verbosity=2, stream=MyStream()).run(suite) if result.wasSuccessful(): return True diff --git a/openerp/tools/test_reports.py b/openerp/tools/test_reports.py index 14deffb9ec2..e4c4e1cc5ac 100644 --- a/openerp/tools/test_reports.py +++ b/openerp/tools/test_reports.py @@ -35,6 +35,8 @@ import os import tempfile _logger = logging.getLogger(__name__) +_test_logger = logging.getLogger('openerp.tests') + def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None): """ Try to render a report with contents of ids @@ -49,7 +51,7 @@ def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None): rname_s = rname[7:] else: rname_s = rname - _logger.info(" - Trying %s.create(%r)", rname, ids) + _test_logger.info(" - Trying %s.create(%r)", rname, ids) res = netsvc.LocalService(rname).create(cr, uid, ids, data, context) if not isinstance(res, tuple): raise RuntimeError("Result of %s.create() should be a (data,format) tuple, now it is a %s" % \ @@ -92,7 +94,7 @@ def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None): _logger.warning("Report %s produced a \"%s\" chunk, cannot examine it", rname, res_format) return False - _logger.info(" + Report %s produced correctly.", rname) + _test_logger.info(" + Report %s produced correctly.", rname) return True def try_report_action(cr, uid, action_id, active_model=None, active_ids=None, @@ -126,7 +128,7 @@ def try_report_action(cr, uid, action_id, active_model=None, active_ids=None, pool = pooler.get_pool(cr.dbname) def log_test(msg, *args): - _logger.info(" - " + msg, *args) + _test_logger.info(" - " + msg, *args) datas = {} if active_model: