]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-42383: pdb: do not fail to restart the target if the current directory changed...
authorAndrey Bienkowski <hexagonrecursion@gmail.com>
Mon, 25 Jan 2021 21:08:01 +0000 (21:08 +0000)
committerGitHub <noreply@github.com>
Mon, 25 Jan 2021 21:08:01 +0000 (13:08 -0800)
This commit only adds tests and a news entry. The actual bug was fixed in the earlier commit.

Lib/test/test_pdb.py
Misc/NEWS.d/next/Library/2020-11-17-14-30-12.bpo-42383.ubl0Y_.rst [new file with mode: 0644]

index 0a6f186d4be2f1ca46d47e6c13f99b8761a7866a..51cd378648378e4dd4b942e506128c2cd20b3ca5 100644 (file)
@@ -1703,6 +1703,29 @@ def bœr():
 
             self.assertEqual(stdout.split('\n')[2].rstrip('\r'), expected)
 
+    def test_issue42383(self):
+        with os_helper.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 (file)
index 0000000..ccf2106
--- /dev/null
@@ -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.