mirror of
https://github.com/python/cpython.git
synced 2025-07-30 14:44:10 +00:00
[3.13] GH-126205: Fix conversion of UNC paths to file URIs (GH-126208) (#126249)
GH-126205: Fix conversion of UNC paths to file URIs (GH-126208)
File URIs for Windows UNC paths should begin with two slashes, not four.
(cherry picked from commit 951cb2c369
)
Co-authored-by: Barney Gale <barney.gale@gmail.com>
This commit is contained in:
parent
80042384b4
commit
588da2e26a
3 changed files with 10 additions and 13 deletions
|
@ -1524,7 +1524,7 @@ class Pathname_Tests(unittest.TestCase):
|
|||
# Test special prefixes are correctly handled in pathname2url()
|
||||
fn = urllib.request.pathname2url
|
||||
self.assertEqual(fn('\\\\?\\C:\\dir'), '///C:/dir')
|
||||
self.assertEqual(fn('\\\\?\\unc\\server\\share\\dir'), '/server/share/dir')
|
||||
self.assertEqual(fn('\\\\?\\unc\\server\\share\\dir'), '//server/share/dir')
|
||||
self.assertEqual(fn("C:"), '///C:')
|
||||
self.assertEqual(fn("C:\\"), '///C:')
|
||||
self.assertEqual(fn('C:\\a\\b.c'), '///C:/a/b.c')
|
||||
|
@ -1535,14 +1535,14 @@ class Pathname_Tests(unittest.TestCase):
|
|||
self.assertRaises(IOError, fn, "XX:\\")
|
||||
# No drive letter
|
||||
self.assertEqual(fn("\\folder\\test\\"), '/folder/test/')
|
||||
self.assertEqual(fn("\\\\folder\\test\\"), '////folder/test/')
|
||||
self.assertEqual(fn("\\\\\\folder\\test\\"), '/////folder/test/')
|
||||
self.assertEqual(fn('\\\\some\\share\\'), '////some/share/')
|
||||
self.assertEqual(fn('\\\\some\\share\\a\\b.c'), '////some/share/a/b.c')
|
||||
self.assertEqual(fn('\\\\some\\share\\a\\b%#c\xe9'), '////some/share/a/b%25%23c%C3%A9')
|
||||
self.assertEqual(fn("\\\\folder\\test\\"), '//folder/test/')
|
||||
self.assertEqual(fn("\\\\\\folder\\test\\"), '///folder/test/')
|
||||
self.assertEqual(fn('\\\\some\\share\\'), '//some/share/')
|
||||
self.assertEqual(fn('\\\\some\\share\\a\\b.c'), '//some/share/a/b.c')
|
||||
self.assertEqual(fn('\\\\some\\share\\a\\b%#c\xe9'), '//some/share/a/b%25%23c%C3%A9')
|
||||
# Round-tripping
|
||||
urls = ['///C:',
|
||||
'/////folder/test/',
|
||||
'///folder/test/',
|
||||
'///C:/foo/bar/spam.foo']
|
||||
for url in urls:
|
||||
self.assertEqual(fn(urllib.request.url2pathname(url)), url)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue