From: Tan Long Date: Fri, 1 May 2026 05:32:57 +0000 (+0800) Subject: gh-149173: Fix inverted PYTHON_BASIC_REPL environment check in _pyrepl_available... X-Git-Tag: v3.15.0b1~146 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8066db57535161dda316a70c1b00a89581bf3399;p=thirdparty%2FPython%2Fcpython.git gh-149173: Fix inverted PYTHON_BASIC_REPL environment check in _pyrepl_available() (#149174) --- diff --git a/Lib/pdb.py b/Lib/pdb.py index c4bc0020646b..4dd974b375c2 100644 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -376,7 +376,7 @@ def get_default_backend(): def _pyrepl_available(): """return whether pdb should use _pyrepl for input""" - if not os.getenv("PYTHON_BASIC_REPL"): + if os.getenv("PYTHON_BASIC_REPL"): CAN_USE_PYREPL = False else: try: diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index c5171f3388c9..db9001997552 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -4753,6 +4753,16 @@ def bœr(): stdout, stderr = self.run_pdb_script(script, commands) self.assertIn("The specified object 'C.foo' is not a function", stdout) + def test_pyrepl_available(self): + with patch.dict(os.environ, {"PYTHON_BASIC_REPL": "1"}): + self.assertFalse(pdb._pyrepl_available()) + + with patch.dict(os.environ, {}, clear=True): + mod = types.ModuleType("_pyrepl.main") + mod.CAN_USE_PYREPL = True + with patch.dict("sys.modules", {"_pyrepl.main": mod}): + self.assertTrue(pdb._pyrepl_available()) + class ChecklineTests(unittest.TestCase): def setUp(self): diff --git a/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst b/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst new file mode 100644 index 000000000000..019ab76b8635 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-04-30-14-21-26.gh-issue-149173.KJqZm0.rst @@ -0,0 +1,2 @@ +Fix inverted :envvar:`PYTHON_BASIC_REPL` environment check in +``pdb._pyrepl_available``.