##// END OF EJS Templates
Wrong variable name in Python 3.13 (#14277)...
Wrong variable name in Python 3.13 (#14277) This should fix some of the issues on 3.13 testing but not sufficient as we'll get issues with stack_data and executing

File last commit:

r28469:1a8be18f
r28559:1587b869 merge
Show More
test_events.py
78 lines | 2.2 KiB | text/x-python | PythonLexer
Thomas Kluyver
Add tests for callback infrastructure
r15601 import unittest
Srinivas Reddy Thatiparthy
remove code specific to python2
r23063 from unittest.mock import Mock
Thomas Kluyver
Add tests for callback infrastructure
r15601
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
Fabio Niephaus
Use `backcall` and introduce `ExecutionRequest`
r23996
Fabio Niephaus
Ensure post event callbacks are always called....
r23982 @events._define_event
Thomas Kluyver
Add tests for callback infrastructure
r15601 def ping_received():
pass
Fabio Niephaus
Use `backcall` and introduce `ExecutionRequest`
r23996
Fabio Niephaus
Ensure post event callbacks are always called....
r23982 @events._define_event
def event_with_argument(argument):
pass
Fabio Niephaus
Use `backcall` and introduce `ExecutionRequest`
r23996
Thomas Kluyver
Add tests for callback infrastructure
r15601 class CallbackTests(unittest.TestCase):
def setUp(self):
Thomas A Caswell
STY: line wrap test init to make more readable
r24014 self.em = events.EventManager(get_ipython(),
{'ping_received': ping_received,
'event_with_argument': event_with_argument})
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)
Thomas A Caswell
TST: add test for searching for removal with bare functions
r24013
def test_bare_function_missed_unregister(self):
def cb1():
...
def cb2():
...
Samuel Gaist
[core][tests][events] Remove nose
r26892 self.em.register("ping_received", cb1)
self.assertRaises(ValueError, self.em.unregister, "ping_received", cb2)
self.em.unregister("ping_received", cb1)
Thomas A Caswell
TST: add test for searching for removal with bare functions
r24013
Thomas Kluyver
Add tests for callback infrastructure
r15601 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')
Craig Citro
Make event triggering robust to (un)registration....
r22317
jsnydes
address #11630 by catching KeyboardInterrupt from event handlers
r24961 def test_cb_keyboard_interrupt(self):
cb = Mock(side_effect=KeyboardInterrupt)
self.em.register('ping_received', cb)
jsnydes
fix new test
r24962 with tt.AssertPrints("Error in callback"):
jsnydes
address #11630 by catching KeyboardInterrupt from event handlers
r24961 self.em.trigger('ping_received')
Craig Citro
Make event triggering robust to (un)registration....
r22317 def test_unregister_during_callback(self):
invoked = [False] * 3
def func1(*_):
invoked[0] = True
self.em.unregister('ping_received', func1)
self.em.register('ping_received', func3)
def func2(*_):
invoked[1] = True
self.em.unregister('ping_received', func2)
def func3(*_):
invoked[2] = True
self.em.register('ping_received', func1)
self.em.register('ping_received', func2)
self.em.trigger('ping_received')
self.assertEqual([True, True, False], invoked)
self.assertEqual([func3], self.em.callbacks['ping_received'])