summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2022-07-10 19:58:52 +0900
committerGitHub <noreply@github.com>2022-07-10 19:58:52 +0900
commit3db1844d9a62b25099b26bbd14f2d7738a71300c (patch)
treeee99df7e20d76438166ba1673f0aa0a14efb3e26 /tests
parent8f6ca411ed7c9631b1eaf5e3040dcb7c646904e1 (diff)
parent66f9ee4afd0dae2a0db139f17b62ec2b184ac0b4 (diff)
downloadsphinx-git-3db1844d9a62b25099b26bbd14f2d7738a71300c.tar.gz
Merge pull request #10634 from jbms/fix-events-pdb
Make `-P` (pdb) work better with exceptions triggered from events
Diffstat (limited to 'tests')
-rw-r--r--tests/test_events.py23
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,))