[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:
Xavier Morel 2014-02-21 15:35:18 +01:00
parent 42763039f0
commit bb7eb52699
4 changed files with 1 additions and 131 deletions

View File

@ -52,7 +52,6 @@ TESTING = Template(u"""<!DOCTYPE html>
<script src="/web/static/lib/qunit/qunit.js"></script>
<script type="text/javascript">
var oe_db_info = ${db_info | n};
// List of modules, each module is preceded by its dependencies
var oe_all_dependencies = ${dependencies | n};
QUnit.config.testTimeout = 5 * 60 * 1000;
@ -134,16 +133,10 @@ class TestRunnerController(http.Controller):
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(
[name for name in sorted_mods
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):
manifest = module.load_information_from_description_file(name)

View File

@ -196,7 +196,6 @@ openerp.testing = {};
});
};
var db = window['oe_db_info'];
testing.section = function (name, options, body) {
if (_.isFunction(options)) {
body = options;
@ -235,40 +234,6 @@ openerp.testing = {};
.push(env._oe.setup, env._oe.teardown)
.push(options.setup, options.teardown);
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 () {
var instance = openerp;
@ -302,21 +267,6 @@ openerp.testing = {};
instance.session.responses[spec] = handler;
};
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

View File

@ -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");
});
});
});
})();

View File

@ -85,19 +85,4 @@ openerp.testing.section('basic section', function (test) {
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');
});
});
});