[ADD] nonliterals in dataset tests
bzr revid: xmo@openerp.com-20120227085128-6ymxpa93pr59vjmb
This commit is contained in:
parent
f67ddedd2a
commit
859991dda7
|
@ -24,15 +24,26 @@ openerp.test_support = {
|
|||
});
|
||||
return connection.session_reload();
|
||||
},
|
||||
module: function (title, tested_core, fn) {
|
||||
module: function (title, tested_core, nonliterals) {
|
||||
var conf = QUnit.config.openerp = {};
|
||||
QUnit.module(title, {
|
||||
setup: function () {
|
||||
QUnit.stop();
|
||||
var oe = conf.openerp = window.openerp.init();
|
||||
window.openerp.web[tested_core](oe);
|
||||
openerp.test_support.setup_connection(oe.connection)
|
||||
.always(QUnit.start)
|
||||
var done = openerp.test_support.setup_connection(oe.connection);
|
||||
if (nonliterals) {
|
||||
done = done.pipe(function () {
|
||||
return oe.connection.rpc('/tests/add_nonliterals', {
|
||||
domains: nonliterals.domains || [],
|
||||
contexts: nonliterals.contexts || []
|
||||
}).then(function (r) {
|
||||
oe.domains = r.domains;
|
||||
oe.contexts = r.contexts;
|
||||
});
|
||||
});
|
||||
}
|
||||
done.always(QUnit.start)
|
||||
.then(function () {
|
||||
conf.openerp = oe;
|
||||
}, function (e) {
|
||||
|
@ -57,6 +68,10 @@ openerp.test_support = {
|
|||
.fail(function (e) {
|
||||
if (e.code !== 200) {
|
||||
QUnit.equal(e.code, 200, 'Testing connector should raise RPC faults');
|
||||
if (typeof console !== 'undefined' && console.error) {
|
||||
console.error(e.data.debug);
|
||||
}
|
||||
return;
|
||||
}
|
||||
fn(e.data.fault_code);
|
||||
})
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
$(document).ready(function () {
|
||||
var t = window.openerp.test_support;
|
||||
function context_(c) {
|
||||
return _.extend({ lang: 'en_US', tz: 'UTC', uid: 87539319 }, c);
|
||||
}
|
||||
|
||||
t.module('Dataset shortcuts', 'data');
|
||||
t.test('read_index', function (openerp) {
|
||||
|
@ -14,6 +17,7 @@ $(document).ready(function () {
|
|||
strictEqual(result.args.length, 3);
|
||||
deepEqual(result.args[0], [30]);
|
||||
deepEqual(result.args[1], ['a', 'b', 'c']);
|
||||
deepEqual(result.args[2], context_());
|
||||
|
||||
ok(_.isEmpty(result.kwargs));
|
||||
});
|
||||
|
@ -27,8 +31,9 @@ $(document).ready(function () {
|
|||
|
||||
strictEqual(result.args.length, 2);
|
||||
deepEqual(result.args[0], ['a', 'b', 'c']);
|
||||
// FIXME: args[1] is context w/ user context, where to get? Hardcode?
|
||||
strictEqual(result.args[1].foo, 'bar');
|
||||
console.log(result.args[1]);
|
||||
console.log(context_({foo: 'bar'}));
|
||||
deepEqual(result.args[1], context_({foo: 'bar'}));
|
||||
|
||||
ok(_.isEmpty(result.kwargs));
|
||||
});
|
||||
|
@ -40,6 +45,7 @@ $(document).ready(function () {
|
|||
|
||||
strictEqual(r.args.length, 2);
|
||||
deepEqual(r.args[0], {foo: 1, bar: 2});
|
||||
deepEqual(r.args[1], context_());
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
|
@ -52,6 +58,7 @@ $(document).ready(function () {
|
|||
strictEqual(r.args.length, 3);
|
||||
deepEqual(r.args[0], [42]);
|
||||
deepEqual(r.args[1], {foo: 1});
|
||||
deepEqual(r.args[2], context_());
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
|
@ -68,6 +75,7 @@ $(document).ready(function () {
|
|||
|
||||
strictEqual(r.args.length, 2);
|
||||
deepEqual(r.args[0], [42]);
|
||||
deepEqual(r.args[1], context_());
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
|
@ -90,6 +98,7 @@ $(document).ready(function () {
|
|||
|
||||
strictEqual(r.args.length, 2);
|
||||
deepEqual(r.args[0], [1, 2]);
|
||||
deepEqual(r.args[1], context_());
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
|
@ -104,6 +113,7 @@ $(document).ready(function () {
|
|||
// domain
|
||||
deepEqual(r.args[1], []);
|
||||
strictEqual(r.args[2], 'ilike');
|
||||
deepEqual(r.args[3], context_());
|
||||
strictEqual(r.args[4], 0);
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
|
@ -119,6 +129,7 @@ $(document).ready(function () {
|
|||
// domain
|
||||
deepEqual(r.args[1], [['foo', '=', 3]]);
|
||||
strictEqual(r.args[2], 'someop');
|
||||
deepEqual(r.args[3], context_());
|
||||
// limit
|
||||
strictEqual(r.args[4], 0);
|
||||
|
||||
|
@ -171,6 +182,32 @@ $(document).ready(function () {
|
|||
strictEqual(r.args[1], 0);
|
||||
strictEqual(r.args[2], false);
|
||||
strictEqual(r.args[3], 'bar ASC, foo DESC');
|
||||
deepEqual(r.args[4], context_());
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
});
|
||||
|
||||
t.module('Nonliterals', 'data', {
|
||||
domains: ['mary had a little lamb', 'bob the builder'],
|
||||
contexts: ['{a: b > c}']
|
||||
});
|
||||
t.test('Dataset', function (openerp) {
|
||||
var ds = new openerp.web.DataSetSearch(
|
||||
{session: openerp.connection}, 'mod');
|
||||
var c = new openerp.web.CompoundContext(
|
||||
{a: 'foo', b: 3, c: 5}, openerp.contexts[0]);
|
||||
t.expect(ds.read_slice(['foo', 'bar'], {
|
||||
context: c
|
||||
}), function (r) {
|
||||
strictEqual(r.method, 'search');
|
||||
|
||||
deepEqual(r.args[4], context_({
|
||||
foo: false,
|
||||
a: 'foo',
|
||||
b: 3,
|
||||
c: 5
|
||||
}));
|
||||
|
||||
ok(_.isEmpty(r.kwargs));
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from ..common.http import Controller, jsonrequest
|
||||
from ..common import http, nonliterals
|
||||
from ..controllers.main import Session
|
||||
|
||||
UID = 87539319
|
||||
|
@ -14,6 +14,18 @@ def bind(session):
|
|||
session.context = CONTEXT
|
||||
session.build_connection().set_login_info(DB, LOGIN, PASSWORD, UID)
|
||||
|
||||
class TestController(http.Controller):
|
||||
_cp_path = '/tests'
|
||||
|
||||
@http.jsonrequest
|
||||
def add_nonliterals(self, req, domains, contexts):
|
||||
return {
|
||||
'domains': [nonliterals.Domain(req.session, domain)
|
||||
for domain in domains],
|
||||
'contexts': [nonliterals.Context(req.session, context)
|
||||
for context in contexts]
|
||||
}
|
||||
|
||||
class TestSession(Session):
|
||||
_cp_path = '/web/session'
|
||||
|
||||
|
|
Loading…
Reference in New Issue