+openerp.testing.section('eval.types', {
+ dependencies: ['web.coresetup']
+}, function (test) {
+ test('strftime', function (instance) {
+ var d = 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',
+ d.getFullYear(), d.getMonth() + 1, d.getDate(),
+ d.getHours(), d.getMinutes(), d.getSeconds()));
+ });
+});
openerp.testing.section('eval.contexts', {
dependencies: ['web.coresetup']
}, function (test) {
+ test('context_recursive', function (instance) {
+ var context_to_eval = [{
+ __ref: 'context',
+ __debug: '{"foo": context.get("bar", "qux")}'
+ }];
+ deepEqual(
+ instance.web.pyeval.eval('contexts', context_to_eval, {bar: "ok"}),
+ {foo: 'ok'});
+ deepEqual(
+ instance.web.pyeval.eval('contexts', context_to_eval, {bar: false}),
+ {foo: false});
+ deepEqual(
+ instance.web.pyeval.eval('contexts', context_to_eval),
+ {foo: 'qux'});
+ });
test('context_sequences', function (instance) {
// Context n should have base evaluation context + all of contexts
// 0..n-1 in its own evaluation context
var active_id = 4;
- var result = instance.session.test_eval_contexts([
+ var result = instance.web.pyeval.eval('contexts', [
{
"__contexts": [
{
});
});
test('non-literal_eval_contexts', function (instance) {
- var result = instance.session.test_eval_contexts([{
+ var result = instance.web.pyeval.eval('contexts', [{
"__ref": "compound_context",
"__contexts": [
{"__ref": "context", "__debug": "{'type':parent.type}",
}, function (test) {
test('current_date', function (instance) {
var current_date = instance.web.date_to_str(new Date());
- var result = instance.session.test_eval_domains(
+ var result = instance.web.pyeval.eval('domains',
[[],{"__ref":"domain","__debug":"[('name','>=',current_date),('name','<=',current_date)]","__id":"5dedcfc96648"}],
- instance.session.test_eval_get_context());
+ instance.web.pyeval.context());
deepEqual(result, [
['name', '>=', current_date],
['name', '<=', current_date]
]);
- })
+ });
+ test('context_freevar', function (instance) {
+ var domains_to_eval = [{
+ __ref: 'domain',
+ __debug: '[("foo", "=", context.get("bar", "qux"))]'
+ }, [['bar', '>=', 42]]];
+ deepEqual(
+ instance.web.pyeval.eval('domains', domains_to_eval, {bar: "ok"}),
+ [['foo', '=', 'ok'], ['bar', '>=', 42]]);
+ deepEqual(
+ instance.web.pyeval.eval('domains', domains_to_eval, {bar: false}),
+ [['foo', '=', false], ['bar', '>=', 42]]);
+ deepEqual(
+ instance.web.pyeval.eval('domains', domains_to_eval),
+ [['foo', '=', 'qux'], ['bar', '>=', 42]]);
+ });
+});
+openerp.testing.section('eval.groupbys', {
+ dependencies: ['web.coresetup']
+}, function (test) {
+ test('groupbys_00', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ {group_by: ['bar', 'qux']},
+ {group_by: null},
+ {group_by: 'grault'}
+ ]);
+ deepEqual(result, ['foo', 'bar', 'qux', 'grault']);
+ });
+ test('groupbys_01', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ { __ref: 'context', __debug: '{"group_by": "bar"}' },
+ {group_by: 'grault'}
+ ]);
+ deepEqual(result, ['foo', 'bar', 'grault']);
+ });
+ test('groupbys_02', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ {
+ __ref: 'compound_context',
+ __contexts: [ {group_by: 'bar'} ],
+ __eval_context: null
+ },
+ {group_by: 'grault'}
+ ]);
+ deepEqual(result, ['foo', 'bar', 'grault']);
+ });
+ test('groupbys_03', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ {
+ __ref: 'compound_context',
+ __contexts: [
+ { __ref: 'context', __debug: '{"group_by": value}' }
+ ],
+ __eval_context: { value: 'bar' }
+ },
+ {group_by: 'grault'}
+ ]);
+ deepEqual(result, ['foo', 'bar', 'grault']);
+ });
+ test('groupbys_04', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ {
+ __ref: 'compound_context',
+ __contexts: [
+ { __ref: 'context', __debug: '{"group_by": value}' }
+ ],
+ __eval_context: { value: 'bar' }
+ },
+ {group_by: 'grault'}
+ ], { value: 'bar' });
+ deepEqual(result, ['foo', 'bar', 'grault']);
+ });
+ test('groupbys_05', function (instance) {
+ var result = instance.web.pyeval.eval('groupbys', [
+ {group_by: 'foo'},
+ { __ref: 'context', __debug: '{"group_by": value}' },
+ {group_by: 'grault'}
+ ], { value: 'bar' });
+ deepEqual(result, ['foo', 'bar', 'grault']);
+ });
});