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