diff options
Diffstat (limited to 'tests/test_events.py')
-rw-r--r-- | tests/test_events.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/test_events.py b/tests/test_events.py index f36c86a87..8f01a673a 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -19,11 +19,16 @@ def test_event_priority(): assert result == [3, 1, 2, 5, 4] +class FakeApp: + def __init__(self, pdb: bool = False): + self.pdb = pdb + + def test_event_allowed_exceptions(): def raise_error(app): raise RuntimeError - events = EventManager(object()) # pass an dummy object as an app + events = EventManager(FakeApp()) # pass an dummy object as an app events.connect('builder-inited', raise_error, priority=500) # all errors are converted to ExtensionError @@ -33,3 +38,19 @@ def test_event_allowed_exceptions(): # Allow RuntimeError (pass-through) with pytest.raises(RuntimeError): events.emit('builder-inited', allowed_exceptions=(RuntimeError,)) + + +def test_event_pdb(): + def raise_error(app): + raise RuntimeError + + events = EventManager(FakeApp(pdb=True)) # pass an dummy object as an app + events.connect('builder-inited', raise_error, priority=500) + + # errors aren't converted + with pytest.raises(RuntimeError): + events.emit('builder-inited') + + # Allow RuntimeError (pass-through) + with pytest.raises(RuntimeError): + events.emit('builder-inited', allowed_exceptions=(RuntimeError,)) |