@@ -1523,26 +1523,26 @@ def test_quoting(self):
1523
1523
def test_pathname2url_win (self ):
1524
1524
# Test special prefixes are correctly handled in pathname2url()
1525
1525
fn = urllib .request .pathname2url
1526
- self .assertEqual (fn ('\\ \\ ?\\ C:\\ dir' ), '///C:/dir' )
1527
- self .assertEqual (fn ('\\ \\ ?\\ unc\\ server\\ share\\ dir' ), '/server/share/dir' )
1526
+ self .assertEqual (fn ('\\ \\ ?\\ C:\\ dir' ), '//? /C:/dir' )
1527
+ self .assertEqual (fn ('\\ \\ ?\\ unc\\ server\\ share\\ dir' ), '//?/unc/ server/share/dir' )
1528
1528
self .assertEqual (fn ("C:" ), '///C:' )
1529
- self .assertEqual (fn ("C:\\ " ), '///C:' )
1529
+ self .assertEqual (fn ("C:\\ " ), '///C:/ ' )
1530
1530
self .assertEqual (fn ('C:\\ a\\ b.c' ), '///C:/a/b.c' )
1531
1531
self .assertEqual (fn ('C:\\ a\\ b%#c' ), '///C:/a/b%25%23c' )
1532
1532
self .assertEqual (fn ('C:\\ a\\ b\xe9 ' ), '///C:/a/b%C3%A9' )
1533
1533
self .assertEqual (fn ('C:\\ foo\\ bar\\ spam.foo' ), "///C:/foo/bar/spam.foo" )
1534
1534
# Long drive letter
1535
- self .assertRaises ( IOError , fn , "XX:\\ " )
1535
+ self .assertEqual ( fn ( "XX:\\ " ), "file:XX:/ " )
1536
1536
# No drive letter
1537
1537
self .assertEqual (fn ("\\ folder\\ test\\ " ), '/folder/test/' )
1538
- self .assertEqual (fn ("\\ \\ folder\\ test\\ " ), '//// folder/test/' )
1539
- self .assertEqual (fn ("\\ \\ \\ folder\\ test\\ " ), '///// folder/test/' )
1540
- self .assertEqual (fn ('\\ \\ some\\ share\\ ' ), '//// some/share/' )
1541
- self .assertEqual (fn ('\\ \\ some\\ share\\ a\\ b.c' ), '//// some/share/a/b.c' )
1542
- self .assertEqual (fn ('\\ \\ some\\ share\\ a\\ b%#c\xe9 ' ), '//// some/share/a/b%25%23c%C3%A9' )
1538
+ self .assertEqual (fn ("\\ \\ folder\\ test\\ " ), '//folder/test/' )
1539
+ self .assertEqual (fn ("\\ \\ \\ folder\\ test\\ " ), '///folder/test/' )
1540
+ self .assertEqual (fn ('\\ \\ some\\ share\\ ' ), '//some/share/' )
1541
+ self .assertEqual (fn ('\\ \\ some\\ share\\ a\\ b.c' ), '//some/share/a/b.c' )
1542
+ self .assertEqual (fn ('\\ \\ some\\ share\\ a\\ b%#c\xe9 ' ), '//some/share/a/b%25%23c%C3%A9' )
1543
1543
# Round-tripping
1544
1544
urls = ['///C:' ,
1545
- '///// folder/test/' ,
1545
+ '//folder/test/' ,
1546
1546
'///C:/foo/bar/spam.foo' ]
1547
1547
for url in urls :
1548
1548
self .assertEqual (fn (urllib .request .url2pathname (url )), url )
@@ -1563,7 +1563,7 @@ def test_url2pathname_win(self):
1563
1563
self .assertEqual (fn ("///C|" ), 'C:' )
1564
1564
self .assertEqual (fn ("///C:" ), 'C:' )
1565
1565
self .assertEqual (fn ('///C:/' ), 'C:\\ ' )
1566
- self .assertEqual (fn ('/C|//' ), 'C:\\ ' )
1566
+ self .assertEqual (fn ('/C|//' ), 'C:\\ \\ ' )
1567
1567
self .assertEqual (fn ('///C|/path' ), 'C:\\ path' )
1568
1568
# No DOS drive
1569
1569
self .assertEqual (fn ("///C/test/" ), '\\ \\ \\ C\\ test\\ ' )
@@ -1575,7 +1575,7 @@ def test_url2pathname_win(self):
1575
1575
self .assertEqual (fn ('///C|/path/to/file' ), 'C:\\ path\\ to\\ file' )
1576
1576
self .assertEqual (fn ("///C|/foo/bar/spam.foo" ), 'C:\\ foo\\ bar\\ spam.foo' )
1577
1577
# Non-ASCII drive letter
1578
- self .assertRaises ( IOError , fn , "///\u00e8 |/" )
1578
+ self .assertEqual ( fn ( "///\u00e8 |/" ), " \\ \u00e8 | \\ " )
1579
1579
# UNC paths
1580
1580
self .assertEqual (fn ('//server/path/to/file' ), '\\ \\ server\\ path\\ to\\ file' )
1581
1581
self .assertEqual (fn ('////server/path/to/file' ), '\\ \\ server\\ path\\ to\\ file' )
@@ -1585,7 +1585,7 @@ def test_url2pathname_win(self):
1585
1585
self .assertEqual (fn ('//localhost/C|/path/to/file' ), 'C:\\ path\\ to\\ file' )
1586
1586
# Round-tripping
1587
1587
paths = ['C:' ,
1588
- r'\\\ C\test\\' ,
1588
+ r'\C\test\\' ,
1589
1589
r'C:\foo\bar\spam.foo' ]
1590
1590
for path in paths :
1591
1591
self .assertEqual (fn (urllib .request .pathname2url (path )), path )
0 commit comments