##// END OF EJS Templates
Work around a bug in setting and getting the mtime in python 2...
Work around a bug in setting and getting the mtime in python 2 See http://bugs.python.org/issue12904. Basically, we can get the mtime in nanosecond precision, but only set it in microsecond precision. This means that the shutil.copy2 will not set the destination's mtime to exactly the same mtime as our source. The end result is that we can *always* end up copying the extension because the source always appears newer. We add a microsecond of fudge time when checking to see if the source is newer than the destination to get around this. This bug is fixed in Python 3.3+, I believe.

File last commit:

r18882:ba45bba5
r20080:52d92404
Show More
manager.js
45 lines | 1.7 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Clarified API for the create_model function,...
r18512 // Test the widget manager.
casper.notebook_test(function () {
var index;
this.then(function () {
// Check if the WidgetManager class is defined.
this.test.assert(this.evaluate(function() {
return IPython.WidgetManager !== undefined;
}), 'WidgetManager class is defined');
// Check if the widget manager has been instantiated.
this.test.assert(this.evaluate(function() {
return IPython.notebook.kernel.widget_manager !== undefined;
}), 'Notebook widget manager instantiated');
// Try creating a widget from Javascript.
Jonathan Frederic
Rebase fixes
r18517 this.evaluate(function() {
IPython.notebook.kernel.widget_manager.create_model({
model_name: 'WidgetModel',
Jonathan Frederic
Initial stab at adding promises to the widget framework.
r18882 widget_class: 'IPython.html.widgets.widget_int.IntSlider'})
.then(function(model) {
Jonathan Frederic
Rebase fixes
r18517 console.log('Create success!', model);
window.slider_id = model.id;
Jonathan Frederic
Initial stab at adding promises to the widget framework.
r18882 }, function(error) { console.log(error); });
Jonathan Frederic
Rebase fixes
r18517 });
});
// Wait for the state to be recieved.
this.waitFor(function check() {
return this.evaluate(function() {
return window.slider_id !== undefined;
Jonathan Frederic
Clarified API for the create_model function,...
r18512 });
});
index = this.append_cell(
'from IPython.html.widgets import Widget\n' +
Jonathan Frederic
Address some more review comments...
r18514 'widget = list(Widget.widgets.values())[0]\n' +
Jonathan Frederic
Clarified API for the create_model function,...
r18512 'print(widget.model_id)');
this.execute_cell_then(index, function(index) {
var output = this.get_output_cell(index).text.trim();
Jonathan Frederic
Rebase fixes
r18517 var slider_id = this.evaluate(function() { return window.slider_id; });
this.test.assertEquals(output, slider_id, "Widget created from the front-end.");
Jonathan Frederic
Clarified API for the create_model function,...
r18512 });
});