summaryrefslogtreecommitdiff
path: root/tests/test_events.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-06-04 00:18:30 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-06-04 00:18:30 +0900
commit068b9b5738b4d41a25e14d56d6f6b55f3bc8d443 (patch)
treef58f2d43d8a54545ae8a0c51ffe99c310864710d /tests/test_events.py
parent88a3548a8268d3b99f2d79db08fe65da7d691592 (diff)
parent9b45b00bd4cee7dad96b98cec0224f88a84ef40a (diff)
downloadsphinx-git-068b9b5738b4d41a25e14d56d6f6b55f3bc8d443.tar.gz
Merge branch '3.x'
Diffstat (limited to 'tests/test_events.py')
-rw-r--r--tests/test_events.py19
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,))