##// END OF EJS Templates
DEV: Allow CheckpointManagers to optimize for shared backends....
DEV: Allow CheckpointManagers to optimize for shared backends. On `create_checkpoint` and `restore_checkpoint`, pass a path and a `ContentsManager` to `CheckpointManager` instead of an already-loaded model. The `CheckpointManager` base class provides a correct implementation of these methods that's generic across any ContentsManager, but subclasses are free to specialize when the storage backend of `ContentsManager` is shared.

File last commit:

r18547:4043b271
r19828:adba75fe
Show More
test_events.py
32 lines | 929 B | text/x-python | PythonLexer
Thomas Kluyver
Add tests for callback infrastructure
r15601 import unittest
try: # Python 3.3 +
from unittest.mock import Mock
except ImportError:
from mock import Mock
Thomas Kluyver
Rename callbacks -> events (mostly), fire -> trigger
r15605 from IPython.core import events
Thomas Kluyver
Add tests for callback infrastructure
r15601 import IPython.testing.tools as tt
def ping_received():
pass
class CallbackTests(unittest.TestCase):
def setUp(self):
Thomas Kluyver
Rename callbacks -> events (mostly), fire -> trigger
r15605 self.em = events.EventManager(get_ipython(), {'ping_received': ping_received})
Thomas Kluyver
Add tests for callback infrastructure
r15601
def test_register_unregister(self):
cb = Mock()
Thomas Kluyver
Rename callbacks -> events (mostly), fire -> trigger
r15605 self.em.register('ping_received', cb)
self.em.trigger('ping_received')
Thomas Kluyver
Add tests for callback infrastructure
r15601 self.assertEqual(cb.call_count, 1)
Thomas Kluyver
Rename callbacks -> events (mostly), fire -> trigger
r15605 self.em.unregister('ping_received', cb)
self.em.trigger('ping_received')
Thomas Kluyver
Add tests for callback infrastructure
r15601 self.assertEqual(cb.call_count, 1)
def test_cb_error(self):
cb = Mock(side_effect=ValueError)
Thomas Kluyver
Rename callbacks -> events (mostly), fire -> trigger
r15605 self.em.register('ping_received', cb)
Thomas Kluyver
Add tests for callback infrastructure
r15601 with tt.AssertPrints("Error in callback"):
Nathaniel J. Smith
Remove EventManager reset methods, because they violate encapsulation....
r18547 self.em.trigger('ping_received')