|
|
|
|
|
//
|
|
|
// Kernel tests
|
|
|
//
|
|
|
casper.notebook_test(function () {
|
|
|
this.evaluate(function () {
|
|
|
IPython.notebook.kernel.kernel_info(
|
|
|
function(msg){
|
|
|
IPython._kernel_info_response = msg;
|
|
|
})
|
|
|
});
|
|
|
|
|
|
this.waitFor(
|
|
|
function () {
|
|
|
return this.evaluate(function(){
|
|
|
return IPython._kernel_info_response;
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.then(function () {
|
|
|
var kernel_info_response = this.evaluate(function(){
|
|
|
return IPython._kernel_info_response;
|
|
|
});
|
|
|
this.test.assertTrue( kernel_info_response.msg_type === 'kernel_info_reply', 'Kernel info request return kernel_info_reply');
|
|
|
this.test.assertTrue( kernel_info_response.content !== undefined, 'Kernel_info_reply is not undefined');
|
|
|
});
|
|
|
|
|
|
this.thenEvaluate(function () {
|
|
|
var kernel = IPython.notebook.session.kernel;
|
|
|
IPython._channels = [
|
|
|
kernel.shell_channel,
|
|
|
kernel.iopub_channel,
|
|
|
kernel.stdin_channel
|
|
|
];
|
|
|
kernel.kill();
|
|
|
});
|
|
|
|
|
|
this.waitFor(function () {
|
|
|
return this.evaluate(function(){
|
|
|
for (var i=0; i < IPython._channels.length; i++) {
|
|
|
var ws = IPython._channels[i];
|
|
|
if (ws.readyState !== ws.CLOSED) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
});
|
|
|
});
|
|
|
|
|
|
this.then(function () {
|
|
|
var states = this.evaluate(function() {
|
|
|
var states = [];
|
|
|
for (var i = 0; i < IPython._channels.length; i++) {
|
|
|
states.push(IPython._channels[i].readyState);
|
|
|
}
|
|
|
return states;
|
|
|
});
|
|
|
|
|
|
for (var i = 0; i < states.length; i++) {
|
|
|
this.test.assertEquals(states[i], WebSocket.CLOSED,
|
|
|
"Kernel.kill closes websockets[" + i + "]");
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|