##// END OF EJS Templates
try to shutdown at the end of every notebook run...
try to shutdown at the end of every notebook run this line causes noise in the test suite, but if we just ignore it, we'll never get to the bottom of it. It seems to only happen when running 'iptest js', and *not* when running the 'casperjs test' command directly, with a notebookserver that was launched manually.

File last commit:

r13288:f4ebc6b7
r13288:f4ebc6b7
Show More
util.js
81 lines | 2.6 KiB | application/javascript | JavascriptLexer
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 //
// Utility functions for the HTML notebook's CasperJS tests.
//
// Get the URL of a notebook server on which to run tests.
Paul Ivanov
pep8 style function names
r13275 casper.get_notebook_server = function () {
Paul Ivanov
updated js tests README, --port= now optional
r13271 port = casper.cli.get("port")
port = (typeof port === 'undefined') ? '8888' : port;
return 'http://127.0.0.1:' + port
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 };
// Create and open a new notebook.
Paul Ivanov
pep8 style function names
r13275 casper.open_new_notebook = function () {
var baseUrl = this.get_notebook_server();
Paul Ivanov
use dashboard to simulate clicking new notebook
r13284 this.start(baseUrl);
this.thenClick('button#new_notebook');
this.waitForPopup('');
this.then(function () {
// XXX: Kind of odd, the next line works for one test, but not when
// running multiple tests back-to-back, so we will just point the main
// casper browser to the same URL as the popup we just grabbed.
//this.page = this.popups[0];
this.open(this.popups[0].url);
});
Paul Ivanov
make casperjs test suite pass again
r13258 // initially, the cells aren't created, so wait for them to appear
this.waitForSelector('.CodeMirror-code');
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 };
// Shut down the current notebook's kernel.
Paul Ivanov
pep8 style function names
r13275 casper.shutdown_current_kernel = function () {
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 this.thenEvaluate(function() {
David Wyde
Use existing IPython method to kill kernels.
r13255 IPython.notebook.kernel.kill();
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 });
};
// Delete created notebook.
Paul Ivanov
pep8 style function names
r13275 casper.delete_current_notebook = function () {
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 this.thenEvaluate(function() {
var nbData = $('body').data();
var url = nbData.baseProjectUrl + 'notebooks/' + nbData.notebookId;
$.ajax(url, {
type: 'DELETE',
});
});
};
David Wyde
Wrap CasperJS tests in a helper function to reduce boilerplate.
r13253 // Wrap a notebook test to reduce boilerplate.
Paul Ivanov
pep8 style function names
r13275 casper.notebook_test = function(test) {
this.open_new_notebook();
David Wyde
Wrap CasperJS tests in a helper function to reduce boilerplate.
r13253 this.then(test);
Paul Ivanov
don't shutdown kernel after every test
r13285 //XXX: we get sporadic error messages when shutting down some of the tests.
// Since the entire server will go down at the end of running the test
// suite, it's ok for now to not try to shut anything down.
Paul Ivanov
try to shutdown at the end of every notebook run...
r13288 this.shutdown_current_kernel();
Paul Ivanov
don't shutdown kernel after every test
r13285
Paul Ivanov
pep8 style function names
r13275 //XXX: the implementation of delete_current_notebook is currently broken
Paul Ivanov
don't shutdown kernel after every test
r13285 // it's not a big deal, since the notebook directory will be deleted on
// cleanup, but we should add tests for deleting the notebook separately
Paul Ivanov
pep8 style function names
r13275 //this.delete_current_notebook();
David Wyde
Wrap CasperJS tests in a helper function to reduce boilerplate.
r13253
// Run the browser automation.
this.run(function() {
this.test.done();
});
};
Paul Ivanov
more informative message on server timeout
r13272 casper.options.waitTimeout=5000
casper.on('waitFor.timeout', function onWaitForTimeout(timeout) {
Paul Ivanov
pep8 style function names
r13275 this.echo("Timeout for " + casper.get_notebook_server());
Paul Ivanov
more informative message on server timeout
r13272 this.echo("Is the notebook server running?");
});
David Wyde
Add CasperJS utility functions, and tests for code and...
r13249 // Pass `console.log` calls from page JS to casper.
casper.printLog = function () {
this.on('remote.message', function(msg) {
this.echo('Remote message caught: ' + msg);
});
};