[REM] RPC from js/qunit tests
They're a pain in the ass, they never worked right and they're basically useless. Screw it. bzr revid: xmo@openerp.com-20140221143518-hv3rjkw2b00ughvh
This commit is contained in:
parent
42763039f0
commit
bb7eb52699
|
@ -52,7 +52,6 @@ TESTING = Template(u"""<!DOCTYPE html>
|
||||||
<script src="/web/static/lib/qunit/qunit.js"></script>
|
<script src="/web/static/lib/qunit/qunit.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var oe_db_info = ${db_info | n};
|
|
||||||
// List of modules, each module is preceded by its dependencies
|
// List of modules, each module is preceded by its dependencies
|
||||||
var oe_all_dependencies = ${dependencies | n};
|
var oe_all_dependencies = ${dependencies | n};
|
||||||
QUnit.config.testTimeout = 5 * 60 * 1000;
|
QUnit.config.testTimeout = 5 * 60 * 1000;
|
||||||
|
@ -134,16 +133,10 @@ class TestRunnerController(http.Controller):
|
||||||
for mod, tests in itertools.izip(sorted_mods, tests)
|
for mod, tests in itertools.izip(sorted_mods, tests)
|
||||||
]
|
]
|
||||||
|
|
||||||
# if all three db_info parameters are present, send them to the page
|
|
||||||
db_info = dict((k, v) for k, v in kwargs.iteritems()
|
|
||||||
if k in ['source', 'supadmin', 'password'])
|
|
||||||
if len(db_info) != 3:
|
|
||||||
db_info = None
|
|
||||||
|
|
||||||
return TESTING.render(files=files, dependencies=json.dumps(
|
return TESTING.render(files=files, dependencies=json.dumps(
|
||||||
[name for name in sorted_mods
|
[name for name in sorted_mods
|
||||||
if module.get_module_resource(name, 'static')
|
if module.get_module_resource(name, 'static')
|
||||||
if manifests[name]['js']]), db_info=json.dumps(db_info))
|
if manifests[name]['js']]))
|
||||||
|
|
||||||
def load_manifest(self, name):
|
def load_manifest(self, name):
|
||||||
manifest = module.load_information_from_description_file(name)
|
manifest = module.load_information_from_description_file(name)
|
||||||
|
|
|
@ -196,7 +196,6 @@ openerp.testing = {};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var db = window['oe_db_info'];
|
|
||||||
testing.section = function (name, options, body) {
|
testing.section = function (name, options, body) {
|
||||||
if (_.isFunction(options)) {
|
if (_.isFunction(options)) {
|
||||||
body = options;
|
body = options;
|
||||||
|
@ -235,40 +234,6 @@ openerp.testing = {};
|
||||||
.push(env._oe.setup, env._oe.teardown)
|
.push(env._oe.setup, env._oe.teardown)
|
||||||
.push(options.setup, options.teardown);
|
.push(options.setup, options.teardown);
|
||||||
var opts = _.defaults({}, options, env._oe);
|
var opts = _.defaults({}, options, env._oe);
|
||||||
// FIXME: if this test is ignored, will still query
|
|
||||||
if (opts.rpc === 'rpc' && !db) {
|
|
||||||
QUnit.config.autostart = false;
|
|
||||||
db = {
|
|
||||||
source: null,
|
|
||||||
supadmin: null,
|
|
||||||
password: null
|
|
||||||
};
|
|
||||||
var $msg = $('<form style="margin: 0 1em 1em;">')
|
|
||||||
.append('<h3>A test needs to clone a database</h3>')
|
|
||||||
.append('<h4>Please provide the source clone information</h4>')
|
|
||||||
.append(' Source DB: ').append('<input name="source">').append('<br>')
|
|
||||||
.append(' DB Password: ').append('<input name="supadmin">').append('<br>')
|
|
||||||
.append('Admin Password: ').append('<input name="password">').append('<br>')
|
|
||||||
.append('<input type="submit" value="OK"/>')
|
|
||||||
.submit(function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
db.source = $msg.find('input[name=source]').val();
|
|
||||||
db.supadmin = $msg.find('input[name=supadmin]').val();
|
|
||||||
db.password = $msg.find('input[name=password]').val();
|
|
||||||
QUnit.start();
|
|
||||||
$.unblockUI();
|
|
||||||
});
|
|
||||||
$.blockUI({
|
|
||||||
message: $msg,
|
|
||||||
css: {
|
|
||||||
fontFamily: 'monospace',
|
|
||||||
textAlign: 'left',
|
|
||||||
whiteSpace: 'pre-wrap',
|
|
||||||
cursor: 'default'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QUnit.test(name, function () {
|
QUnit.test(name, function () {
|
||||||
var instance = openerp;
|
var instance = openerp;
|
||||||
|
@ -302,21 +267,6 @@ openerp.testing = {};
|
||||||
instance.session.responses[spec] = handler;
|
instance.session.responses[spec] = handler;
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
case 'rpc':
|
|
||||||
async = true;
|
|
||||||
(function () {
|
|
||||||
// Add a session setup at the start of the stack to ensure user is logged in
|
|
||||||
case_stack = case_stack.unshift(function (instance) {
|
|
||||||
// FIXME hack: don't want the session to go through shitty loading process of everything
|
|
||||||
instance.session.session_init = testing.noop;
|
|
||||||
instance.session.load_modules = testing.noop;
|
|
||||||
instance.session.session_bind();
|
|
||||||
if (instance.session.session_is_valid()) {
|
|
||||||
return $.when();
|
|
||||||
}
|
|
||||||
return instance.session.session_authenticate(db.source, 'admin', db.password, true);
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always execute tests asynchronously
|
// Always execute tests asynchronously
|
||||||
|
|
|
@ -149,62 +149,4 @@ function (test) {
|
||||||
});*/
|
});*/
|
||||||
});
|
});
|
||||||
|
|
||||||
var login = "admin";
|
|
||||||
var password = "admin";
|
|
||||||
|
|
||||||
ropenerp.testing.section('jsonrpc-auth', {
|
|
||||||
rpc: "rpc",
|
|
||||||
},
|
|
||||||
function (test) {
|
|
||||||
test('basic-auth', {asserts: 3}, function () {
|
|
||||||
var db = ropenerp.session.db;
|
|
||||||
var session = new openerp.Session(null, null, {override_session: true});
|
|
||||||
equal(session.uid, undefined, "uid is expected to be undefined");
|
|
||||||
return session.session_authenticate(db, login, password).then(function() {
|
|
||||||
equal(session.uid, 1, "Admin's uid must be 1");
|
|
||||||
return session.rpc("/web/dataset/call_kw", {
|
|
||||||
model: "res.users",
|
|
||||||
method: "read",
|
|
||||||
args: [1, ["login"]],
|
|
||||||
kwargs: {},
|
|
||||||
}).then(function(result) {
|
|
||||||
equal(result.login, "admin", "Admin's name must be 'admin'");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
test('share-sessions', {asserts: 6}, function () {
|
|
||||||
var db = ropenerp.session.db;
|
|
||||||
var session = new openerp.Session(null, null, {override_session: true});
|
|
||||||
var session2;
|
|
||||||
return session.session_authenticate(db, login, password).then(function() {
|
|
||||||
equal(session.uid, 1, "Admin's uid must be 1");
|
|
||||||
session2 = new openerp.Session(null, null, {session_id: session.session_id});
|
|
||||||
equal(session2.uid, undefined, "uid should be undefined");
|
|
||||||
equal(session2.override_session, true, "overwrite_session should be true");
|
|
||||||
return session2.session_reload();
|
|
||||||
}).then(function() {
|
|
||||||
equal(session2.uid, session.uid);
|
|
||||||
equal(session2.uid, 1);
|
|
||||||
return session2.rpc("/web/dataset/call_kw", {
|
|
||||||
model: "res.users",
|
|
||||||
method: "read",
|
|
||||||
args: [1, ["login"]],
|
|
||||||
kwargs: {},
|
|
||||||
}).then(function(result) {
|
|
||||||
equal(result.login, "admin", "Admin's name must be 'admin'");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
test('models', {asserts: 2}, function () {
|
|
||||||
var db = ropenerp.session.db;
|
|
||||||
var session = new openerp.Session(null, null, {override_session: true});
|
|
||||||
return session.session_authenticate(db, login, password).then(function() {
|
|
||||||
return session.model("res.users").call("search_read", {fields: ["login"], domain: [["id", "=", 1]]});
|
|
||||||
}).then(function(result) {
|
|
||||||
equal(result.length, 1, "Must have one result");
|
|
||||||
equal(result[0].login, "admin", "Must have admin's login");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -85,19 +85,4 @@ openerp.testing.section('basic section', function (test) {
|
||||||
deepEqual(dbm.db_list, ['foo', 'bar', 'baz']);
|
deepEqual(dbm.db_list, ['foo', 'bar', 'baz']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('actual RPC', {rpc: 'rpc', asserts: 4}, function (instance) {
|
|
||||||
var Model = new instance.web.Model('web_tests_demo.model');
|
|
||||||
return Model.call('create', [{name: "Bob"}])
|
|
||||||
.then(function (id) {
|
|
||||||
return Model.call('read', [[id]]);
|
|
||||||
}).then(function (records) {
|
|
||||||
strictEqual(records.length, 1);
|
|
||||||
var record = records[0];
|
|
||||||
strictEqual(record.name, "Bob");
|
|
||||||
strictEqual(record.thing, false);
|
|
||||||
// default value
|
|
||||||
strictEqual(record.other, 'bob');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue