mirror of
https://github.com/python/cpython.git
synced 2024-11-24 02:15:30 +08:00
GH-88013: Fix TypeError raised by ntpath.realpath in some cases (GH-102813)
This commit is contained in:
parent
995386071f
commit
4dc339b4d6
@ -670,7 +670,7 @@ else:
|
||||
|
||||
# Non-strict algorithm is to find as much of the target directory
|
||||
# as we can and join the rest.
|
||||
tail = ''
|
||||
tail = path[:0]
|
||||
while path:
|
||||
try:
|
||||
path = _getfinalpathname(path)
|
||||
|
@ -1,6 +1,7 @@
|
||||
import inspect
|
||||
import ntpath
|
||||
import os
|
||||
import string
|
||||
import sys
|
||||
import unittest
|
||||
import warnings
|
||||
@ -374,6 +375,12 @@ class TestNtpath(NtpathTestCase):
|
||||
self.assertPathEqual(ntpath.realpath(os.fsencode(ABSTFN + "1")),
|
||||
os.fsencode(ABSTFN))
|
||||
|
||||
# gh-88013: call ntpath.realpath with binary drive name may raise a
|
||||
# TypeError. The drive should not exist to reproduce the bug.
|
||||
drives = {f"{c}:\\" for c in string.ascii_uppercase} - set(os.listdrives())
|
||||
d = drives.pop().encode()
|
||||
self.assertEqual(ntpath.realpath(d), d)
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
@unittest.skipUnless(HAVE_GETFINALPATHNAME, 'need _getfinalpathname')
|
||||
def test_realpath_strict(self):
|
||||
|
@ -0,0 +1,2 @@
|
||||
Fixed a bug where :exc:`TypeError` was raised when calling
|
||||
:func:`ntpath.realpath` with a bytes parameter in some cases.
|
Loading…
Reference in New Issue
Block a user