summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_urllib.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2024-11-14 20:22:14 (GMT)
committerGitHub <noreply@github.com>2024-11-14 20:22:14 (GMT)
commitcae9d9d20f61cdbde0765efa340b6b596c31b67f (patch)
tree72fd81537fbe2b3989fbaf3f952ad8c65da7d0f7 /Lib/test/test_urllib.py
parent47cbf038850852cdcbe7a404ed7c64542340d58a (diff)
downloadcpython-cae9d9d20f61cdbde0765efa340b6b596c31b67f.zip
cpython-cae9d9d20f61cdbde0765efa340b6b596c31b67f.tar.gz
cpython-cae9d9d20f61cdbde0765efa340b6b596c31b67f.tar.bz2
GH-126766: `url2pathname()`: handle empty authority section. (#126767)
Discard two leading slashes from the beginning of a `file:` URI if they introduce an empty authority section. As a result, file URIs like `///etc/hosts` are correctly parsed as `/etc/hosts`.
Diffstat (limited to 'Lib/test/test_urllib.py')
-rw-r--r--Lib/test/test_urllib.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index 66e948f..2c53ce3 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -1549,7 +1549,7 @@ class Pathname_Tests(unittest.TestCase):
self.assertEqual(fn('//?/unc/server/share/dir'), '//server/share/dir')
# 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)
@@ -1573,7 +1573,7 @@ class Pathname_Tests(unittest.TestCase):
self.assertEqual(fn('/C|//'), 'C:\\\\')
self.assertEqual(fn('///C|/path'), 'C:\\path')
# No DOS drive
- self.assertEqual(fn("///C/test/"), '\\\\\\C\\test\\')
+ self.assertEqual(fn("///C/test/"), '\\C\\test\\')
self.assertEqual(fn("////C/test/"), '\\\\C\\test\\')
# DOS drive paths
self.assertEqual(fn('C:/path/to/file'), 'C:\\path\\to\\file')
@@ -1597,7 +1597,7 @@ class Pathname_Tests(unittest.TestCase):
self.assertEqual(fn('//server/share/foo%2fbar'), '\\\\server\\share\\foo/bar')
# Round-tripping
paths = ['C:',
- r'\\\C\test\\',
+ r'\C\test\\',
r'C:\foo\bar\spam.foo']
for path in paths:
self.assertEqual(fn(urllib.request.pathname2url(path)), path)
@@ -1608,8 +1608,8 @@ class Pathname_Tests(unittest.TestCase):
fn = urllib.request.url2pathname
self.assertEqual(fn('/foo/bar'), '/foo/bar')
self.assertEqual(fn('//foo/bar'), '//foo/bar')
- self.assertEqual(fn('///foo/bar'), '///foo/bar')
- self.assertEqual(fn('////foo/bar'), '////foo/bar')
+ self.assertEqual(fn('///foo/bar'), '/foo/bar')
+ self.assertEqual(fn('////foo/bar'), '//foo/bar')
self.assertEqual(fn('//localhost/foo/bar'), '//localhost/foo/bar')
class Utility_Tests(unittest.TestCase):