From 9d96bb1c52ccd85ed5a400fdb5847073430b683b Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Thu, 11 Dec 2008 12:17:58 +0100 Subject: [PATCH] [IMP] better reporting when a assertion fail bzr revid: christophe@tinyerp.com-20081211111758-onyb31yezgyxi2cp --- bin/tools/convert.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/bin/tools/convert.py b/bin/tools/convert.py index 887160afe6a..8e5078985c8 100644 --- a/bin/tools/convert.py +++ b/bin/tools/convert.py @@ -607,7 +607,12 @@ form: module.record_id""" % (xml_id,) count = int(rec_src_count) if len(ids) != count: self.assert_report.record_assertion(False, severity) - self.logger.notifyChannel('init', severity, 'assertion "' + rec_string + '" failed ! (search count is incorrect: ' + str(len(ids)) + ')' ) + msg = 'assertion "%s" failed!\n' \ + ' Incorrect search count:\n' \ + ' expected count: %d\n' \ + ' obtained count: %d\n' \ + % (rec_string, count, len(ids)) + self.logger.notifyChannel('init', severity, msg) sevval = getattr(logging, severity.upper()) if sevval >= config['assert_exit_level']: # TODO: define a dedicated exception @@ -630,10 +635,16 @@ form: module.record_id""" % (xml_id,) globals['_ref'] = ref for test in [i for i in rec.childNodes if (i.nodeType == i.ELEMENT_NODE and i.nodeName=="test")]: f_expr = test.getAttribute("expr").encode('utf-8') - f_val = _eval_xml(self, test, self.pool, cr, uid, self.idref, context=context) or True - if eval(f_expr, globals) != f_val: # assertion failed + expected_value = _eval_xml(self, test, self.pool, cr, uid, self.idref, context=context) or True + expression_value = eval(f_expr, globals) + if expression_value != expected_value: # assertion failed self.assert_report.record_assertion(False, severity) - self.logger.notifyChannel('init', severity, 'assertion "' + rec_string + '" failed ! (tag ' + test.toxml() + ')' ) + msg = 'assertion "%s" failed!\n' \ + ' xmltag: %s\n' \ + ' expected value: %r\n' \ + ' obtained value: %r\n' \ + % (rec_string, test.toxml(), expected_value, expression_value) + self.logger.notifyChannel('init', severity, msg) sevval = getattr(logging, severity.upper()) if sevval >= config['assert_exit_level']: # TODO: define a dedicated exception