diff --git a/changelog/4028.trivial.rst b/changelog/4028.trivial.rst new file mode 100644 index 00000000000..2ec5f6306af --- /dev/null +++ b/changelog/4028.trivial.rst @@ -0,0 +1 @@ +Revert patching of ``sys.breakpointhook`` since it appears to do nothing. diff --git a/src/_pytest/debugging.py b/src/_pytest/debugging.py index f51dff373c9..717e4a27a20 100644 --- a/src/_pytest/debugging.py +++ b/src/_pytest/debugging.py @@ -2,18 +2,10 @@ from __future__ import absolute_import, division, print_function import pdb import sys -import os from doctest import UnexpectedException from _pytest.config import hookimpl -try: - from builtins import breakpoint # noqa - - SUPPORTS_BREAKPOINT_BUILTIN = True -except ImportError: - SUPPORTS_BREAKPOINT_BUILTIN = False - def pytest_addoption(parser): group = parser.getgroup("general") @@ -51,20 +43,12 @@ def pytest_configure(config): if config.getvalue("usepdb"): config.pluginmanager.register(PdbInvoke(), "pdbinvoke") - # Use custom Pdb class set_trace instead of default Pdb on breakpoint() call - if SUPPORTS_BREAKPOINT_BUILTIN: - _environ_pythonbreakpoint = os.environ.get("PYTHONBREAKPOINT", "") - if _environ_pythonbreakpoint == "": - sys.breakpointhook = pytestPDB.set_trace - old = (pdb.set_trace, pytestPDB._pluginmanager) def fin(): pdb.set_trace, pytestPDB._pluginmanager = old pytestPDB._config = None pytestPDB._pdb_cls = pdb.Pdb - if SUPPORTS_BREAKPOINT_BUILTIN: - sys.breakpointhook = sys.__breakpointhook__ pdb.set_trace = pytestPDB.set_trace pytestPDB._pluginmanager = config.pluginmanager diff --git a/testing/test_pdb.py b/testing/test_pdb.py index 246f514b4a9..2526873e3a8 100644 --- a/testing/test_pdb.py +++ b/testing/test_pdb.py @@ -4,9 +4,15 @@ import os import _pytest._code -from _pytest.debugging import SUPPORTS_BREAKPOINT_BUILTIN import pytest +try: + breakpoint +except NameError: + SUPPORTS_BREAKPOINT_BUILTIN = False +else: + SUPPORTS_BREAKPOINT_BUILTIN = True + _ENVIRON_PYTHONBREAKPOINT = os.environ.get("PYTHONBREAKPOINT", "")