[IMP] tests: removed the severity concept from `assert` tags.
bzr revid: vmt@openerp.com-20120302112834-n1zyqf1g4v61ivje
This commit is contained in:
parent
dc34d73695
commit
0cb86fc58d
|
@ -101,7 +101,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
|
|||
return True
|
||||
except Exception, e:
|
||||
_logger.error(
|
||||
'module %s: an exception occured in a test', module_name)
|
||||
'module %s: an exception occurred in a test', module_name)
|
||||
return False
|
||||
finally:
|
||||
threading.currentThread().testing = False
|
||||
|
|
|
@ -580,7 +580,7 @@ def run_unit_tests(module_name):
|
|||
if result.wasSuccessful():
|
||||
return True
|
||||
else:
|
||||
_logger.error('module %s: at least one error occured in a test', module_name)
|
||||
_logger.error('module %s: at least one error occurred in a test', module_name)
|
||||
return False
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -171,10 +171,7 @@ class configmanager(object):
|
|||
group.add_option("--test-enable", action="store_true", dest="test_enable",
|
||||
my_default=False, help="Enable YAML and unit tests.")
|
||||
group.add_option("--test-commit", action="store_true", dest="test_commit",
|
||||
my_default=False, help="Commit database changes performed by tests.")
|
||||
group.add_option("--assert-exit-level", dest='assert_exit_level', type="choice", choices=self._LOGLEVELS.keys(),
|
||||
my_default='error',
|
||||
help="specify the level at which a failed assertion will stop the server. Accepted values: %s" % (self._LOGLEVELS.keys(),))
|
||||
my_default=False, help="Commit database changes performed by YAML or XML tests.")
|
||||
parser.add_option_group(group)
|
||||
|
||||
# Logging Group
|
||||
|
@ -408,11 +405,6 @@ class configmanager(object):
|
|||
elif isinstance(self.options[arg], basestring) and self.casts[arg].type in optparse.Option.TYPE_CHECKER:
|
||||
self.options[arg] = optparse.Option.TYPE_CHECKER[self.casts[arg].type](self.casts[arg], arg, self.options[arg])
|
||||
|
||||
if opt.assert_exit_level:
|
||||
self.options['assert_exit_level'] = self._LOGLEVELS[opt.assert_exit_level]
|
||||
else:
|
||||
self.options['assert_exit_level'] = self._LOGLEVELS.get(self.options['assert_exit_level']) or int(self.options['assert_exit_level'])
|
||||
|
||||
self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(openerp.__file__))))
|
||||
if not self.options['addons_path'] or self.options['addons_path']=='None':
|
||||
self.options['addons_path'] = os.path.join(self.options['root_path'], 'addons')
|
||||
|
@ -582,7 +574,7 @@ class configmanager(object):
|
|||
continue
|
||||
if opt in self.blacklist_for_save:
|
||||
continue
|
||||
if opt in ('log_level', 'assert_exit_level'):
|
||||
if opt in ('log_level',):
|
||||
p.set('options', opt, loglevelnames.get(self.options[opt], self.options[opt]))
|
||||
else:
|
||||
p.set('options', opt, self.options[opt])
|
||||
|
|
|
@ -685,7 +685,6 @@ form: module.record_id""" % (xml_id,)
|
|||
rec_src = rec.get("search",'').encode('utf8')
|
||||
rec_src_count = rec.get("count")
|
||||
|
||||
severity = rec.get("severity",'').encode('ascii') or loglevels.LOG_ERROR
|
||||
rec_string = rec.get("string",'').encode('utf8') or 'unknown'
|
||||
|
||||
ids = None
|
||||
|
@ -706,11 +705,7 @@ form: module.record_id""" % (xml_id,)
|
|||
' expected count: %d\n' \
|
||||
' obtained count: %d\n' \
|
||||
% (rec_string, count, len(ids))
|
||||
sevval = getattr(logging, severity.upper())
|
||||
_logger.log(sevval, msg)
|
||||
if sevval >= config['assert_exit_level']:
|
||||
# TODO: define a dedicated exception
|
||||
raise Exception('Severe assertion failure')
|
||||
_logger.error(msg)
|
||||
return
|
||||
|
||||
assert ids is not None,\
|
||||
|
@ -738,11 +733,7 @@ form: module.record_id""" % (xml_id,)
|
|||
' expected value: %r\n' \
|
||||
' obtained value: %r\n' \
|
||||
% (rec_string, etree.tostring(test), expected_value, expression_value)
|
||||
sevval = getattr(logging, severity.upper())
|
||||
_logger.log(sevval, msg)
|
||||
if sevval >= config['assert_exit_level']:
|
||||
# TODO: define a dedicated exception
|
||||
raise Exception('Severe assertion failure')
|
||||
_logger.error(msg)
|
||||
return
|
||||
else: # all tests were successful for this assertion tag (no break)
|
||||
self.assertion_report.record_success()
|
||||
|
|
|
@ -187,18 +187,9 @@ class YamlInterpreter(object):
|
|||
def process_comment(self, node):
|
||||
return node
|
||||
|
||||
def _log_assert_failure(self, severity, msg, *args):
|
||||
if isinstance(severity, types.StringTypes):
|
||||
levelname = severity.strip().upper()
|
||||
level = logging.getLevelName(levelname)
|
||||
else:
|
||||
level = severity
|
||||
levelname = logging.getLevelName(level)
|
||||
def _log_assert_failure(msg, *args):
|
||||
self.assertion_report.record_failure()
|
||||
_logger.log(level, msg, *args)
|
||||
if level >= config['assert_exit_level']:
|
||||
raise YamlImportAbortion('Severe assertion failure (%s), aborting.' % levelname)
|
||||
return
|
||||
_logger.error(msg, *args)
|
||||
|
||||
def _get_assertion_id(self, assertion):
|
||||
if assertion.id:
|
||||
|
@ -227,7 +218,7 @@ class YamlInterpreter(object):
|
|||
' expected count: %d\n' \
|
||||
' obtained count: %d\n'
|
||||
args = (assertion.string, assertion.count, len(ids))
|
||||
self._log_assert_failure(assertion.severity, msg, *args)
|
||||
self._log_assert_failure(msg, *args)
|
||||
else:
|
||||
context = self.get_context(assertion, self.eval_context)
|
||||
for id in ids:
|
||||
|
@ -260,7 +251,7 @@ class YamlInterpreter(object):
|
|||
args += ( lmsg, aop, rmsg )
|
||||
break
|
||||
|
||||
self._log_assert_failure(assertion.severity, msg, *args)
|
||||
self._log_assert_failure(msg, *args)
|
||||
return
|
||||
else: # all tests were successful for this assertion tag (no break)
|
||||
self.assertion_report.record_success()
|
||||
|
@ -505,7 +496,7 @@ class YamlInterpreter(object):
|
|||
code_obj = compile(statements, self.filename, 'exec')
|
||||
unsafe_eval(code_obj, {'ref': self.get_id}, code_context)
|
||||
except AssertionError, e:
|
||||
self._log_assert_failure(python.severity, 'AssertionError in Python code %s: %s', python.name, e)
|
||||
self._log_assert_failure('AssertionError in Python code %s: %s', python.name, e)
|
||||
return
|
||||
except Exception, e:
|
||||
_logger.debug('Exception during evaluation of !python block in yaml_file %s.', self.filename, exc_info=True)
|
||||
|
@ -804,7 +795,7 @@ class YamlInterpreter(object):
|
|||
"""
|
||||
Empty node or commented node should not pass silently.
|
||||
"""
|
||||
self._log_assert_failure(logging.WARNING, "You have an empty block in your tests.")
|
||||
self._log_assert_failure("You have an empty block in your tests.")
|
||||
|
||||
|
||||
def process(self, yaml_string):
|
||||
|
|
Loading…
Reference in New Issue