Show More
@@ -0,0 +1,46 b'' | |||||
|
1 | import unittest | |||
|
2 | try: # Python 3.3 + | |||
|
3 | from unittest.mock import Mock | |||
|
4 | except ImportError: | |||
|
5 | from mock import Mock | |||
|
6 | ||||
|
7 | from IPython.core import callbacks | |||
|
8 | import IPython.testing.tools as tt | |||
|
9 | ||||
|
10 | def ping_received(): | |||
|
11 | pass | |||
|
12 | ||||
|
13 | class CallbackTests(unittest.TestCase): | |||
|
14 | def setUp(self): | |||
|
15 | self.cbm = callbacks.CallbackManager(get_ipython(), {'ping_received': ping_received}) | |||
|
16 | ||||
|
17 | def test_register_unregister(self): | |||
|
18 | cb = Mock() | |||
|
19 | ||||
|
20 | self.cbm.register('ping_received', cb) | |||
|
21 | self.cbm.fire('ping_received') | |||
|
22 | self.assertEqual(cb.call_count, 1) | |||
|
23 | ||||
|
24 | self.cbm.unregister('ping_received', cb) | |||
|
25 | self.cbm.fire('ping_received') | |||
|
26 | self.assertEqual(cb.call_count, 1) | |||
|
27 | ||||
|
28 | def test_reset(self): | |||
|
29 | cb = Mock() | |||
|
30 | self.cbm.register('ping_received', cb) | |||
|
31 | self.cbm.reset('ping_received') | |||
|
32 | self.cbm.fire('ping_received') | |||
|
33 | assert not cb.called | |||
|
34 | ||||
|
35 | def test_reset_all(self): | |||
|
36 | cb = Mock() | |||
|
37 | self.cbm.register('ping_received', cb) | |||
|
38 | self.cbm.reset_all() | |||
|
39 | self.cbm.fire('ping_received') | |||
|
40 | assert not cb.called | |||
|
41 | ||||
|
42 | def test_cb_error(self): | |||
|
43 | cb = Mock(side_effect=ValueError) | |||
|
44 | self.cbm.register('ping_received', cb) | |||
|
45 | with tt.AssertPrints("Error in callback"): | |||
|
46 | self.cbm.fire('ping_received') No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now