[test] Fix unittest_i18n to run properly with "pytest -t" (closes #5576169)
When running "pytest -t", many tests modules will be imported and run
within a single python process. unittest_i18n fails when run after tests
such as unittest_webtest.py or unittest_httptest.py.
The main reason is that unittest_i18n does various tricks to add a test
cube to the search path, which badly fails when a previous test module
has already loaded "stuff" (for lack of a better word).
Instead, let's just call the 'i18ncube' command with subprocess.
The change from logilab.common.testlib to unittest is not directly
needed, but comes as a free cleanup with the above changes.
/**
* .. function:: cw.utils.deprecatedFunction(msg, function)
*
* jQUery flattens arrays returned by the mapping function: ::
*
* >>> y = ['a:b:c', 'd:e']
* >>> jQuery.map(y, function(y) { return y.split(':');})
* ["a", "b", "c", "d", "e"]
* // where one would expect:
* [ ["a", "b", "c"], ["d", "e"] ]
*/
// XXX why not the same argument order as $.map and forEach ?
function map(func, array) {
var result = [];
for (var i = 0, length = array.length; i < length; i++) {
result.push(func(array[i]));
}
return result;
}
// skm cube still uses this
getNodeAttribute = cw.utils.deprecatedFunction(
'[3.9] getNodeAttribute(node, attr) is deprecated, use $(node).attr(attr)',
function(node, attribute) {
return $(node).attr(attribute);
}
);