diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-05-17 18:53:34 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-05-17 19:18:10 +0900 |
| commit | 3206e3154afc8d948ff9cdbc7bd22775bea839ba (patch) | |
| tree | 57314ccd5691b55ce67d98c4b8aca94a7e21be38 /tests/test_events.py | |
| parent | 5f51a1e63f9442439466b7acede87ad21d49bdc0 (diff) | |
| download | sphinx-git-3206e3154afc8d948ff9cdbc7bd22775bea839ba.tar.gz | |
Add allowed_exceptions parameter to Sphinx.emit() (refs: #7683)
It allows handlers to raise specified exceptions.
Diffstat (limited to 'tests/test_events.py')
| -rw-r--r-- | tests/test_events.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/test_events.py b/tests/test_events.py index 4881588a4..4fbe03a17 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -8,6 +8,9 @@ :license: BSD, see LICENSE for details. """ +import pytest + +from sphinx.errors import ExtensionError from sphinx.events import EventManager @@ -22,3 +25,19 @@ def test_event_priority(): events.emit('builder-inited') assert result == [3, 1, 2, 5, 4] + + +def test_event_allowed_exceptions(): + def raise_error(app): + raise RuntimeError + + events = EventManager(object()) # pass an dummy object as an app + events.connect('builder-inited', raise_error, priority=500) + + # all errors are conveted to ExtensionError + with pytest.raises(ExtensionError): + events.emit('builder-inited') + + # Allow RuntimeError (pass-through) + with pytest.raises(RuntimeError): + events.emit('builder-inited', allowed_exceptions=(RuntimeError,)) |
