Bug report
Bug description:
URLs supplied to urllib.request.url2pathname() may include a non-empty authority (netloc), such as a hostname.
On Windows, these are correctly decoded (mostly):
>>> url2pathname('//localhost/c:/foo.txt')
'C:\\foo.txt' # OK
>>> url2pathname('//server/share')
'\\\\server\\share' # OK
But on POSIX, any non-empty authority except localhost is preserved in the path:
>>> url2pathname('//myhostname/etc/hosts')
'//myhostname/etc/hosts' # expected '/etc/hosts'
>>> url2pathname('//server/share')
'//server/share' # expected URLError ('server' is not local)
Per RFC 8089 this isn't correct.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs