mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
bpo-46362: Ensure ntpath.abspath() uses the Windows API correctly (GH-30571)
This makes ntpath.abspath()/getpath_abspath() follow normpath(), since some WinAPIs such as PathCchSkipRoot() require backslashed paths.
This commit is contained in:
parent
b8ddf7e794
commit
d4e64cd4b0
8 changed files with 114 additions and 42 deletions
|
@ -613,6 +613,40 @@ class TestNtpath(NtpathTestCase):
|
|||
@unittest.skipUnless(nt, "abspath requires 'nt' module")
|
||||
def test_abspath(self):
|
||||
tester('ntpath.abspath("C:\\")', "C:\\")
|
||||
tester('ntpath.abspath("\\\\?\\C:////spam////eggs. . .")', "\\\\?\\C:\\spam\\eggs")
|
||||
tester('ntpath.abspath("\\\\.\\C:////spam////eggs. . .")', "\\\\.\\C:\\spam\\eggs")
|
||||
tester('ntpath.abspath("//spam//eggs. . .")', "\\\\spam\\eggs")
|
||||
tester('ntpath.abspath("\\\\spam\\\\eggs. . .")', "\\\\spam\\eggs")
|
||||
tester('ntpath.abspath("C:/spam. . .")', "C:\\spam")
|
||||
tester('ntpath.abspath("C:\\spam. . .")', "C:\\spam")
|
||||
tester('ntpath.abspath("C:/nul")', "\\\\.\\nul")
|
||||
tester('ntpath.abspath("C:\\nul")', "\\\\.\\nul")
|
||||
tester('ntpath.abspath("//..")', "\\\\")
|
||||
tester('ntpath.abspath("//../")', "\\\\..\\")
|
||||
tester('ntpath.abspath("//../..")', "\\\\..\\")
|
||||
tester('ntpath.abspath("//../../")', "\\\\..\\..\\")
|
||||
tester('ntpath.abspath("//../../../")', "\\\\..\\..\\")
|
||||
tester('ntpath.abspath("//../../../..")', "\\\\..\\..\\")
|
||||
tester('ntpath.abspath("//../../../../")', "\\\\..\\..\\")
|
||||
tester('ntpath.abspath("//server")', "\\\\server")
|
||||
tester('ntpath.abspath("//server/")', "\\\\server\\")
|
||||
tester('ntpath.abspath("//server/..")', "\\\\server\\")
|
||||
tester('ntpath.abspath("//server/../")', "\\\\server\\..\\")
|
||||
tester('ntpath.abspath("//server/../..")', "\\\\server\\..\\")
|
||||
tester('ntpath.abspath("//server/../../")', "\\\\server\\..\\")
|
||||
tester('ntpath.abspath("//server/../../..")', "\\\\server\\..\\")
|
||||
tester('ntpath.abspath("//server/../../../")', "\\\\server\\..\\")
|
||||
tester('ntpath.abspath("//server/share")', "\\\\server\\share")
|
||||
tester('ntpath.abspath("//server/share/")', "\\\\server\\share\\")
|
||||
tester('ntpath.abspath("//server/share/..")', "\\\\server\\share\\")
|
||||
tester('ntpath.abspath("//server/share/../")', "\\\\server\\share\\")
|
||||
tester('ntpath.abspath("//server/share/../..")', "\\\\server\\share\\")
|
||||
tester('ntpath.abspath("//server/share/../../")', "\\\\server\\share\\")
|
||||
tester('ntpath.abspath("C:\\nul. . .")', "\\\\.\\nul")
|
||||
tester('ntpath.abspath("//... . .")', "\\\\")
|
||||
tester('ntpath.abspath("//.. . . .")', "\\\\")
|
||||
tester('ntpath.abspath("//../... . .")', "\\\\..\\")
|
||||
tester('ntpath.abspath("//../.. . . .")', "\\\\..\\")
|
||||
with os_helper.temp_cwd(os_helper.TESTFN) as cwd_dir: # bpo-31047
|
||||
tester('ntpath.abspath("")', cwd_dir)
|
||||
tester('ntpath.abspath(" ")', cwd_dir + "\\ ")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue