diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 08fc3be483d..9de0d51526e 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -255,6 +255,8 @@ QUnit.done(function(result) { if (result.failed === 0) { console.log('ok'); + } else { + console.log('error'); } }); openerp.web.qweb.add_template("/web/webclient/qweb"); diff --git a/openerp/modules/module.py b/openerp/modules/module.py index 8f34a74f882..cd21e681a8b 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -384,11 +384,12 @@ class TestStream(object): if self.r.match(s): return first = True - for c in s.split('\n'): + level = logging.ERROR if s.startswith(('ERROR', 'FAIL', 'Traceback')) else logging.INFO + for c in s.splitlines(): if not first: c = '` ' + c first = False - self.logger.info(c) + self.logger.log(level, c) current_test = None diff --git a/openerp/tests/phantomtest.js b/openerp/tests/phantomtest.js index 5a6a9696cc0..84f886c5dbb 100644 --- a/openerp/tests/phantomtest.js +++ b/openerp/tests/phantomtest.js @@ -1,14 +1,15 @@ -// Phantomjs openerp helper +// Phantomjs odoo helper +// jshint evil: true, loopfunc: true -function waitFor (ready, callback, timeout, timeoutMessageCallback) { +function waitFor (condition, callback, timeout, timeoutMessageCallback) { timeout = timeout || 10000; - var start = new Date; + var start = new Date(); (function waitLoop() { - if(new Date - start > timeout) { + if(new Date() - start > timeout) { console.log('error', timeoutMessageCallback ? timeoutMessageCallback() : "Timeout after "+timeout+" ms"); phantom.exit(1); - } else if (ready()) { + } else if (condition()) { callback(); } else { setTimeout(waitLoop, 250); @@ -44,7 +45,7 @@ function PhantomTest() { } return result.join(''); })); - msg.push('(leaf frame on top)') + msg.push('(leaf frame on top)'); } console.log('error', JSON.stringify(msg.join('\n'))); phantom.exit(1); @@ -86,9 +87,9 @@ function PhantomTest() { }; setTimeout(function () { self.page.evaluate(function () { - var message = ("Timeout\nhref: " + window.location.href - + "\nreferrer: " + document.referrer - + "\n\n" + (document.body && document.body.innerHTML)).replace(/[^a-z0-9\s~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "*"); + var message = ("Timeout\nhref: " + window.location.href + + "\nreferrer: " + document.referrer + + "\n\n" + (document.body && document.body.innerHTML)).replace(/[^a-z0-9\s~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, "*"); console.log('error', message); phantom.exit(1); }); @@ -107,6 +108,8 @@ function PhantomTest() { url_path = "/login?" + qp.join('&'); } var url = self.origin + url_path; + code = code || "true"; + ready = ready || "true"; self.page.open(url, function(status) { if (status !== 'success') { console.log('error', "failed to load " + url); @@ -115,7 +118,7 @@ function PhantomTest() { console.log('loaded', url, status); // process ready waitFor(function() { - console.log("PhantomTest.run: wait for condition: " + ready); + console.log("PhantomTest.run: wait for condition:", ready); return self.page.evaluate(function (ready) { var r = false; try {