]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.7] bpo-31047: Fix ntpath.abspath to trim ending separator (GH-10082)
authorSteve Dower <steve.dower@microsoft.com>
Thu, 25 Oct 2018 17:46:23 +0000 (13:46 -0400)
committerGitHub <noreply@github.com>
Thu, 25 Oct 2018 17:46:23 +0000 (13:46 -0400)
Lib/ntpath.py
Lib/test/test_ntpath.py
Misc/NEWS.d/next/Library/2018-10-25-09-37-03.bpo-31047.kBbX8r.rst [new file with mode: 0644]

index f0e03a2f496a914ff0264e0528b0d49550ef751c..3c820b5d0eb791cca0497110e776ad119f8aa285 100644 (file)
@@ -523,8 +523,8 @@ else:  # use native Windows method on Windows
     def abspath(path):
         """Return the absolute version of a path."""
         try:
-            return _getfullpathname(path)
-        except OSError:
+            return normpath(_getfullpathname(path))
+        except (OSError, ValueError):
             return _abspath_fallback(path)
 
 # realpath is a no-op on systems without islink support
index 907ca7edbead1b721b7201c641911b8eabc17985..6e31b644112215e97ef88f794dc8eb2e717dd39a 100644 (file)
@@ -284,6 +284,8 @@ class TestNtpath(unittest.TestCase):
             tester('ntpath.abspath("")', cwd_dir)
             tester('ntpath.abspath(" ")', cwd_dir + "\\ ")
             tester('ntpath.abspath("?")', cwd_dir + "\\?")
+            drive, _ = ntpath.splitdrive(cwd_dir)
+            tester('ntpath.abspath("/abc/")', drive + "\\abc")
 
     def test_relpath(self):
         tester('ntpath.relpath("a")', 'a')
diff --git a/Misc/NEWS.d/next/Library/2018-10-25-09-37-03.bpo-31047.kBbX8r.rst b/Misc/NEWS.d/next/Library/2018-10-25-09-37-03.bpo-31047.kBbX8r.rst
new file mode 100644 (file)
index 0000000..1e47bf4
--- /dev/null
@@ -0,0 +1,2 @@
+Fix ``ntpath.abspath`` regression where it didn't remove a trailing
+separator on Windows. Patch by Tim Graham.