summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruno Oliveira <nicoddemus@gmail.com>2021-01-25 12:28:00 -0300
committerBruno Oliveira <nicoddemus@gmail.com>2021-01-25 12:28:00 -0300
commit33861098d9145d3441c317c9d9b2265654b53b05 (patch)
treea43e6397461e3c59f94d5298ac958a3efc1b9440 /src
parentadc0f29b8f8fa8a63e0592c38503855a5b615a29 (diff)
downloadpytest-33861098d9145d3441c317c9d9b2265654b53b05.tar.gz
Only re-enable fauthandler during unconfigure if it was enabled before
Diffstat (limited to 'src')
-rw-r--r--src/_pytest/faulthandler.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/_pytest/faulthandler.py b/src/_pytest/faulthandler.py
index 9592de82d..c8eb03101 100644
--- a/src/_pytest/faulthandler.py
+++ b/src/_pytest/faulthandler.py
@@ -12,6 +12,7 @@ from _pytest.store import StoreKey
fault_handler_stderr_key = StoreKey[TextIO]()
+fault_handler_originally_enabled_key = StoreKey[bool]()
def pytest_addoption(parser: Parser) -> None:
@@ -27,6 +28,7 @@ def pytest_configure(config: Config) -> None:
stderr_fd_copy = os.dup(get_stderr_fileno())
config._store[fault_handler_stderr_key] = open(stderr_fd_copy, "w")
+ config._store[fault_handler_originally_enabled_key] = faulthandler.is_enabled()
faulthandler.enable(file=config._store[fault_handler_stderr_key])
@@ -38,10 +40,9 @@ def pytest_unconfigure(config: Config) -> None:
if fault_handler_stderr_key in config._store:
config._store[fault_handler_stderr_key].close()
del config._store[fault_handler_stderr_key]
- # Re-enable the faulthandler, attaching it to the default sys.stderr
- # so we can see crashes after pytest has finished, usually during
- # garbage collection during interpreter shutdown.
- faulthandler.enable(file=get_stderr_fileno())
+ if config._store.get(fault_handler_originally_enabled_key, False):
+ # Re-enable the faulthandler if it was originally enabled.
+ faulthandler.enable(file=get_stderr_fileno())
def get_stderr_fileno() -> int: