[MERGE] removed LocalService("workflow"), Logger class, and TEST log level.
bzr revid: vmt@openerp.com-20130327170639-uamgg7shlmtxgpxv
This commit is contained in:
commit
4ed7ec95b7
|
@ -28,13 +28,14 @@ import time
|
|||
|
||||
import openerp
|
||||
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__)
|
||||
|
||||
|
@ -667,12 +668,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
|
||||
|
|
|
@ -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.log(logging.TEST, "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
|
||||
|
|
|
@ -26,7 +26,7 @@ import types
|
|||
|
||||
import openerp
|
||||
from openerp import SUPERUSER_ID
|
||||
from openerp import netsvc, tools
|
||||
from openerp import tools
|
||||
from openerp.osv import fields,osv
|
||||
from openerp.osv.orm import Model
|
||||
from openerp.tools.safe_eval import safe_eval as eval
|
||||
|
@ -1046,10 +1046,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)
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -20,80 +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')
|
||||
|
||||
_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.
|
||||
|
||||
|
|
|
@ -43,6 +43,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):
|
||||
|
@ -74,7 +75,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:
|
||||
|
@ -95,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)
|
||||
_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)
|
||||
|
|
|
@ -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.log(logging.TEST, '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.log(logging.TEST, c)
|
||||
_test_logger.info(c)
|
||||
result = unittest2.TextTestRunner(verbosity=2, stream=MyStream()).run(suite)
|
||||
if result.wasSuccessful():
|
||||
return True
|
||||
|
|
|
@ -36,8 +36,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
|
||||
|
||||
|
@ -79,7 +77,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),
|
||||
|
@ -177,7 +174,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'],
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -29,8 +29,10 @@ import sys
|
|||
|
||||
# for eval context:
|
||||
import time
|
||||
|
||||
import openerp
|
||||
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):
|
||||
|
@ -525,9 +527,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)
|
||||
|
||||
|
|
|
@ -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 <rname> 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.log(logging.TEST, " - Trying %s.create(%r)", rname, ids)
|
||||
_test_logger.info(" - Trying %s.create(%r)", rname, ids)
|
||||
res = openerp.report.render_report(cr, uid, ids, rname_s, 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.log(logging.TEST, " + 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,
|
|||
registry = openerp.registry(cr.dbname)
|
||||
|
||||
def log_test(msg, *args):
|
||||
_logger.log(logging.TEST, " - " + msg, *args)
|
||||
_test_logger.info(" - " + msg, *args)
|
||||
|
||||
datas = {}
|
||||
if active_model:
|
||||
|
|
|
@ -7,6 +7,7 @@ import logging
|
|||
|
||||
import openerp
|
||||
import openerp.sql_db as sql_db
|
||||
import openerp.workflow
|
||||
import misc
|
||||
from config import config
|
||||
import yaml_tag
|
||||
|
@ -588,9 +589,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 = []
|
||||
|
@ -926,7 +925,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)
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue