[Python-checkins] [3.9] bpo-42383: pdb: do not fail to restart the target if the current directory changed (GH-23412) (#24322)
gvanrossum
webhook-mailer at python.org
Tue Jan 26 10:58:27 EST 2021
https://github.com/python/cpython/commit/f8cfe54e5a7082edcec74a34b3d7e6afab051afd
commit: f8cfe54e5a7082edcec74a34b3d7e6afab051afd
branch: 3.9
author: Andrey Bienkowski <hexagonrecursion at gmail.com>
committer: gvanrossum <gvanrossum at gmail.com>
date: 2021-01-26T07:57:58-08:00
summary:
[3.9] bpo-42383: pdb: do not fail to restart the target if the current directory changed (GH-23412) (#24322)
files:
A Misc/NEWS.d/next/Library/2020-11-17-14-30-12.bpo-42383.ubl0Y_.rst
M Lib/test/test_pdb.py
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index e1a13cbaf3ef8..6c4eaf318e448 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -1702,6 +1702,29 @@ def test_issue42384_symlink(self):
self.assertEqual(stdout.split('\n')[2].rstrip('\r'), expected)
+ def test_issue42383(self):
+ with support.temp_cwd() as cwd:
+ with open('foo.py', 'w') as f:
+ s = textwrap.dedent("""
+ print('The correct file was executed')
+
+ import os
+ os.chdir("subdir")
+ """)
+ f.write(s)
+
+ subdir = os.path.join(cwd, 'subdir')
+ os.mkdir(subdir)
+ os.mkdir(os.path.join(subdir, 'subdir'))
+ wrong_file = os.path.join(subdir, 'foo.py')
+
+ with open(wrong_file, 'w') as f:
+ f.write('print("The wrong file was executed")')
+
+ stdout, stderr = self._run_pdb(['foo.py'], 'c\nc\nq')
+ expected = '(Pdb) The correct file was executed'
+ self.assertEqual(stdout.split('\n')[6].rstrip('\r'), expected)
+
def load_tests(*args):
from test import test_pdb
diff --git a/Misc/NEWS.d/next/Library/2020-11-17-14-30-12.bpo-42383.ubl0Y_.rst b/Misc/NEWS.d/next/Library/2020-11-17-14-30-12.bpo-42383.ubl0Y_.rst
new file mode 100644
index 0000000000000..ccf2106f28a93
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-11-17-14-30-12.bpo-42383.ubl0Y_.rst
@@ -0,0 +1,2 @@
+Fix pdb: previously pdb would fail to restart the debugging target if it was
+specified using a relative path and the current directory changed.
More information about the Python-checkins
mailing list