From ac5008abc97d8df015c5ff31a8d3d81b81a5ebca Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 18 Mar 2013 11:52:44 +0100 Subject: [PATCH] [FIX] pyeval: argspec of relativedelta bzr revid: xmo@openerp.com-20130318105244-qkgvi69do0219lkk --- addons/web/static/src/js/pyeval.js | 11 +++++++---- addons/web/static/test/evals.js | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/pyeval.js b/addons/web/static/src/js/pyeval.js index 554c4aa7db0..c1e1264aaf5 100644 --- a/addons/web/static/src/js/pyeval.js +++ b/addons/web/static/src/js/pyeval.js @@ -502,12 +502,15 @@ openerp.web.pyeval = function (instance) { return py.PY_call(py.PY_getAttr(d, 'strftime'), [args.format]); }); + var args = _.map(('year month day hour minute second microsecond ' + + 'years months weeks days hours minutes secondes microseconds ' + + 'weekday leakdays yearday nlyearday').split(' '), function (arg) { + return [arg, null] + }); + args.unshift('*'); var relativedelta = py.type('relativedelta', null, { __init__: function () { - this.ops = py.PY_parseArgs(arguments, - '* year month day hour minute second microsecond ' - + 'years months weeks days hours minutes secondes microseconds ' - + 'weekday leakdays yearday nlyearday'); + this.ops = py.PY_parseArgs(arguments, args); }, __add__: function (other) { if (!py.PY_isInstance(other, datetime.date)) { diff --git a/addons/web/static/test/evals.js b/addons/web/static/test/evals.js index 0e1c1351b98..2cc3655a0aa 100644 --- a/addons/web/static/test/evals.js +++ b/addons/web/static/test/evals.js @@ -259,6 +259,12 @@ openerp.testing.section('eval.types', { py.eval('a + a', ctx); }, /^Error: TypeError:/); }); + test('relastivedelta', function (instance) { + strictEqual( + py.eval("(datetime.date(2012, 2, 15) + relativedelta(days=-1)).strftime('%Y-%m-%d 23:59:59')", + instance.web.pyeval.context()), + "2012-02-14 23:59:59"); + }) }); openerp.testing.section('eval.edc', { dependencies: ['web.data'],