kernel.js
192 lines
| 5.7 KiB
| application/javascript
|
JavascriptLexer
Matthias BUSSONNIER
|
r14718 | |||
// | ||||
MinRK
|
r17640 | // Kernel tests | ||
Matthias BUSSONNIER
|
r14718 | // | ||
casper.notebook_test(function () { | ||||
Jessica B. Hamrick
|
r18212 | // test that the kernel is running | ||
Jessica B. Hamrick
|
r18210 | this.then(function () { | ||
Jessica B. Hamrick
|
r18212 | this.test.assert(this.kernel_running(), 'kernel is running'); | ||
Jessica B. Hamrick
|
r18210 | }); | ||
Jessica B. Hamrick
|
r18212 | // test list | ||
this.thenEvaluate(function () { | ||||
IPython._kernels = null; | ||||
IPython.notebook.kernel.list(function (data) { | ||||
IPython._kernels = data; | ||||
}); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython._kernels !== null; | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
var num_kernels = this.evaluate(function () { | ||||
return IPython._kernels.length; | ||||
}); | ||||
this.test.assertEquals(num_kernels, 1, 'one kernel running'); | ||||
}); | ||||
// test get_info | ||||
var kernel_info = this.evaluate(function () { | ||||
return { | ||||
name: IPython.notebook.kernel.name, | ||||
id: IPython.notebook.kernel.id | ||||
}; | ||||
}); | ||||
this.thenEvaluate(function () { | ||||
IPython._kernel_info = null; | ||||
IPython.notebook.kernel.get_info(function (data) { | ||||
IPython._kernel_info = data; | ||||
}); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython._kernel_info !== null; | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
var new_kernel_info = this.evaluate(function () { | ||||
return IPython._kernel_info; | ||||
}); | ||||
this.test.assertEquals(kernel_info.name, new_kernel_info.name, 'kernel: name correct'); | ||||
this.test.assertEquals(kernel_info.id, new_kernel_info.id, 'kernel: id correct'); | ||||
}); | ||||
// test interrupt | ||||
this.thenEvaluate(function () { | ||||
IPython._interrupted = false; | ||||
IPython.notebook.kernel.interrupt(function () { | ||||
IPython._interrupted = true; | ||||
}); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython._interrupted; | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
var interrupted = this.evaluate(function () { | ||||
return IPython._interrupted; | ||||
}); | ||||
this.test.assert(interrupted, 'kernel was interrupted'); | ||||
}); | ||||
// test restart | ||||
this.thenEvaluate(function () { | ||||
IPython.notebook.kernel.restart(); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_fully_disconnected(); | ||||
}); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_connected(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assert(this.kernel_running(), 'kernel restarted'); | ||||
}); | ||||
// test reconnect | ||||
this.thenEvaluate(function () { | ||||
IPython.notebook.kernel.stop_channels(); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_fully_disconnected(); | ||||
}); | ||||
}); | ||||
this.thenEvaluate(function () { | ||||
IPython.notebook.kernel.reconnect(); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_connected(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assert(this.kernel_running(), 'kernel reconnected'); | ||||
}); | ||||
// test kernel_info_request | ||||
Matthias BUSSONNIER
|
r14718 | this.evaluate(function () { | ||
IPython.notebook.kernel.kernel_info( | ||||
function(msg){ | ||||
MinRK
|
r17640 | IPython._kernel_info_response = msg; | ||
Jessica B. Hamrick
|
r18210 | }); | ||
Matthias BUSSONNIER
|
r14718 | }); | ||
this.waitFor( | ||||
function () { | ||||
return this.evaluate(function(){ | ||||
return IPython._kernel_info_response; | ||||
}); | ||||
}); | ||||
Matthias BUSSONNIER
|
r14719 | this.then(function () { | ||
Matthias BUSSONNIER
|
r14722 | var kernel_info_response = this.evaluate(function(){ | ||
Matthias BUSSONNIER
|
r14719 | return IPython._kernel_info_response; | ||
Matthias BUSSONNIER
|
r14718 | }); | ||
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'); | ||||
Matthias BUSSONNIER
|
r14719 | }); | ||
Jessica B. Hamrick
|
r18212 | |||
// test kill | ||||
MinRK
|
r17640 | this.thenEvaluate(function () { | ||
Jessica B. Hamrick
|
r18210 | IPython.notebook.kernel.kill(); | ||
MinRK
|
r17640 | }); | ||
this.waitFor(function () { | ||||
Jessica B. Hamrick
|
r18210 | return this.evaluate(function () { | ||
return IPython.notebook.kernel.is_fully_disconnected(); | ||||
MinRK
|
r17640 | }); | ||
}); | ||||
this.then(function () { | ||||
Jessica B. Hamrick
|
r18210 | this.test.assert(!this.kernel_running(), 'kernel is not running'); | ||
MinRK
|
r17640 | }); | ||
Jessica B. Hamrick
|
r18212 | |||
// test start | ||||
var url; | ||||
this.then(function () { | ||||
url = this.evaluate(function () { | ||||
return IPython.notebook.kernel.start(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assertEquals(url, "/api/kernels", "start url is correct"); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_connected(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assert(this.kernel_running(), 'kernel is running'); | ||||
}); | ||||
// test start with parameters | ||||
this.thenEvaluate(function () { | ||||
IPython.notebook.kernel.kill(); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_fully_disconnected(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
url = this.evaluate(function () { | ||||
return IPython.notebook.kernel.start({foo: "bar"}); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assertEquals(url, "/api/kernels?foo=bar", "start url with params is correct"); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython.notebook.kernel.is_connected(); | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
this.test.assert(this.kernel_running(), 'kernel is running'); | ||||
}); | ||||
Matthias BUSSONNIER
|
r14718 | }); | ||