test_events.py
32 lines
| 929 B
| text/x-python
|
PythonLexer
Thomas Kluyver
|
r15601 | import unittest | ||
try: # Python 3.3 + | ||||
from unittest.mock import Mock | ||||
except ImportError: | ||||
from mock import Mock | ||||
Thomas Kluyver
|
r15605 | from IPython.core import events | ||
Thomas Kluyver
|
r15601 | import IPython.testing.tools as tt | ||
def ping_received(): | ||||
pass | ||||
class CallbackTests(unittest.TestCase): | ||||
def setUp(self): | ||||
Thomas Kluyver
|
r15605 | self.em = events.EventManager(get_ipython(), {'ping_received': ping_received}) | ||
Thomas Kluyver
|
r15601 | |||
def test_register_unregister(self): | ||||
cb = Mock() | ||||
Thomas Kluyver
|
r15605 | self.em.register('ping_received', cb) | ||
self.em.trigger('ping_received') | ||||
Thomas Kluyver
|
r15601 | self.assertEqual(cb.call_count, 1) | ||
Thomas Kluyver
|
r15605 | self.em.unregister('ping_received', cb) | ||
self.em.trigger('ping_received') | ||||
Thomas Kluyver
|
r15601 | self.assertEqual(cb.call_count, 1) | ||
def test_cb_error(self): | ||||
cb = Mock(side_effect=ValueError) | ||||
Thomas Kluyver
|
r15605 | self.em.register('ping_received', cb) | ||
Thomas Kluyver
|
r15601 | with tt.AssertPrints("Error in callback"): | ||
Nathaniel J. Smith
|
r18547 | self.em.trigger('ping_received') | ||