session.js
110 lines
| 3.6 KiB
| application/javascript
|
JavascriptLexer
MinRK
|
r17640 | |||
// | ||||
// Tests for the Session object | ||||
// | ||||
casper.notebook_test(function () { | ||||
Jessica B. Hamrick
|
r18211 | var that = this; | ||
var get_info = function () { | ||||
return that.evaluate(function () { | ||||
return JSON.parse(JSON.stringify(IPython.notebook.session._get_model())); | ||||
}); | ||||
}; | ||||
// test that the kernel is running | ||||
Jessica B. Hamrick
|
r18210 | this.then(function () { | ||
this.test.assert(this.kernel_running(), 'session: kernel is running'); | ||||
}); | ||||
Jessica B. Hamrick
|
r18211 | // test list | ||
Jessica B. Hamrick
|
r18210 | this.thenEvaluate(function () { | ||
Jessica B. Hamrick
|
r18211 | IPython._sessions = null; | ||
IPython.notebook.session.list(function (data) { | ||||
IPython._sessions = data; | ||||
}); | ||||
}); | ||||
this.waitFor(function () { | ||||
return this.evaluate(function () { | ||||
return IPython._sessions !== null; | ||||
}); | ||||
}); | ||||
this.then(function () { | ||||
var num_sessions = this.evaluate(function () { | ||||
return IPython._sessions.length; | ||||
}); | ||||
this.test.assertEquals(num_sessions, 1, 'one session running'); | ||||
MinRK
|
r17640 | }); | ||
Jessica B. Hamrick
|
r18210 | |||
Jessica B. Hamrick
|
r18211 | // test get_info | ||
var session_info = get_info(); | ||||
this.thenEvaluate(function () { | ||||
IPython._session_info = null; | ||||
IPython.notebook.session.get_info(function (data) { | ||||
IPython._session_info = data; | ||||
}); | ||||
}); | ||||
MinRK
|
r17640 | this.waitFor(function () { | ||
Jessica B. Hamrick
|
r18210 | return this.evaluate(function () { | ||
Jessica B. Hamrick
|
r18211 | return IPython._session_info !== null; | ||
MinRK
|
r17640 | }); | ||
}); | ||||
Jessica B. Hamrick
|
r18211 | this.then(function () { | ||
var new_session_info = this.evaluate(function () { | ||||
return IPython._session_info; | ||||
}); | ||||
this.test.assertEquals(session_info.notebook.name, new_session_info.notebook.name, 'session: notebook name correct'); | ||||
this.test.assertEquals(session_info.notebook.path, new_session_info.notebook.path, 'session: notebook path correct'); | ||||
this.test.assertEquals(session_info.kernel.name, new_session_info.kernel.name, 'session: kernel name correct'); | ||||
this.test.assertEquals(session_info.kernel.id, new_session_info.kernel.id, 'session: kernel id correct'); | ||||
}); | ||||
// test rename_notebook | ||||
// | ||||
// TODO: the PATCH request isn't supported by phantom, so this test always | ||||
// fails, see https://github.com/ariya/phantomjs/issues/11384 | ||||
// when this is fixed we can properly run this test | ||||
// | ||||
// this.thenEvaluate(function () { | ||||
// IPython._renamed = false; | ||||
// IPython.notebook.session.rename_notebook( | ||||
// "foo", | ||||
// "bar", | ||||
// function (data) { | ||||
// IPython._renamed = true; | ||||
// } | ||||
// ); | ||||
// }); | ||||
// this.waitFor(function () { | ||||
// return this.evaluate(function () { | ||||
// return IPython._renamed; | ||||
// }); | ||||
// }); | ||||
// this.then(function () { | ||||
// var info = get_info(); | ||||
// this.test.assertEquals(info.notebook.name, "foo", "notebook was renamed"); | ||||
// this.test.assertEquals(info.notebook.path, "bar", "notebook path was changed"); | ||||
// }); | ||||
MinRK
|
r17640 | |||
Jessica B. Hamrick
|
r18211 | // test delete | ||
this.thenEvaluate(function () { | ||||
IPython.notebook.session.delete(); | ||||
}); | ||||
this.waitFor(function () { | ||||
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(), 'session deletes kernel'); | ||
MinRK
|
r17640 | }); | ||
Jessica B. Hamrick
|
r18211 | |||
// test start after delete -- should throw an error | ||||
this.then(function () { | ||||
var start = function () { | ||||
this.evaluate(function () { | ||||
IPython.notebook.session.start(); | ||||
}); | ||||
}; | ||||
this.test.assertRaises(start, [], 'error raised on start after delete'); | ||||
}); | ||||
MinRK
|
r17640 | }); | ||