From: Tian Gao Date: Thu, 20 Nov 2025 02:41:25 +0000 (-0800) Subject: gh-141615: Check stdin instead of stdout for use_rawinput in pdb (#141616) X-Git-Tag: v3.15.0a3~344 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc9b9d47f9d649661c9c0c3e042ad9e559b9c81e;p=thirdparty%2FPython%2Fcpython.git gh-141615: Check stdin instead of stdout for use_rawinput in pdb (#141616) --- diff --git a/Lib/pdb.py b/Lib/pdb.py index 76bb28d73964..8e9502cb9e6b 100644 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -346,8 +346,8 @@ class Pdb(bdb.Bdb, cmd.Cmd): bdb.Bdb.__init__(self, skip=skip, backend=backend if backend else get_default_backend()) cmd.Cmd.__init__(self, completekey, stdin, stdout) sys.audit("pdb.Pdb") - if stdout: - self.use_rawinput = 0 + if stdin: + self.use_rawinput = False self.prompt = '(Pdb) ' self.aliases = {} self.displaying = {} diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 9d89008756a1..418ea79cdd22 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -4744,6 +4744,19 @@ class PdbTestInline(unittest.TestCase): self.assertNotIn("readline imported", stdout) self.assertEqual(stderr, "") + def test_alternate_stdin(self): + script = textwrap.dedent(""" + import pdb + import io + + input_data = io.StringIO("p 40 + 2\\nc\\n") + pdb.Pdb(stdin=input_data).set_trace() + """) + commands = "" + stdout, stderr = self._run_script(script, commands) + self.assertIn("42", stdout) + self.assertEqual(stderr, "") + @support.force_colorized_test_class class PdbTestColorize(unittest.TestCase): diff --git a/Misc/NEWS.d/next/Library/2025-11-16-06-08-46.gh-issue-141615.--6EK3.rst b/Misc/NEWS.d/next/Library/2025-11-16-06-08-46.gh-issue-141615.--6EK3.rst new file mode 100644 index 000000000000..bb54e6839872 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-11-16-06-08-46.gh-issue-141615.--6EK3.rst @@ -0,0 +1 @@ +Check ``stdin`` instead of ``stdout`` for ``use_rawinput`` in :mod:`pdb`.