diff --git a/addons/web/static/test/evals.js b/addons/web/static/test/evals.js index 4fc7140f5e0..2e71f226744 100644 --- a/addons/web/static/test/evals.js +++ b/addons/web/static/test/evals.js @@ -4,27 +4,33 @@ openerp.testing.section('eval.types', { instance.session.uid = 42; } }, function (test) { - test('strftime', function (instance) { - var d = new Date(); + var check_datetime = function(expr, date_func) { + // evaluate expr between two calls to new Date(), and check that + // the result is between the transformed dates + var d0 = new Date; var context = instance.web.pyeval.context(); - strictEqual( - py.eval("time.strftime('%Y')", context), - String(d.getFullYear())); - strictEqual( - py.eval("time.strftime('%Y')+'-01-30'", context), - String(d.getFullYear()) + '-01-30'); - strictEqual( - py.eval("time.strftime('%Y-%m-%d %H:%M:%S')", context), - _.str.sprintf('%04d-%02d-%02d %02d:%02d:%02d', + var result = py.eval(expr, context); + var d1 = new Date; + ok(date_func(d0) <= result && result <= date_func(d1)); + }; + test('strftime', function (instance) { + check_datetime("time.strftime('%Y')", function(d) { + return String(d.getFullYear()); + }); + check_datetime("time.strftime('%Y')+'-01-30'", function(d) { + return String(d.getFullYear()) + '-01-30'; + }); + check_datetime("time.strftime('%Y-%m-%d %H:%M:%S')", function(d) { + return _.str.sprintf('%04d-%02d-%02d %02d:%02d:%02d', d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), - d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds())); + d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()); + }); }); test('context_today', function (instance) { - var d = new Date(); - var context = instance.web.pyeval.context(); - strictEqual( - py.eval("context_today().strftime('%Y-%m-%d')", context), - String(_.str.sprintf('%04d-%02d-%02d', d.getFullYear(), d.getMonth() + 1, d.getDate()))); + check_datetime("context_today().strftime('%Y-%m-%d')", function(d) { + return String(_.str.sprintf('%04d-%02d-%02d', + d.getFullYear(), d.getMonth() + 1, d.getDate())); + }); }); // Port from pypy/lib_pypy/test_datetime.py var makeEq = function (instance, c2) {