[Python-checkins] bpo-38449: Revert "bpo-22347: Update mimetypes.guess_type to allow oper parsing of URLs (GH-15522)" (GH-16724)
Miss Islington (bot)
webhook-mailer at python.org
Sat Oct 12 01:41:51 EDT 2019
https://github.com/python/cpython/commit/19a3d873005e5730eeabdc394c961e93f2ec02f0
commit: 19a3d873005e5730eeabdc394c961e93f2ec02f0
branch: master
author: Abhilash Raj <maxking at users.noreply.github.com>
committer: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
date: 2019-10-11T22:41:35-07:00
summary:
bpo-38449: Revert "bpo-22347: Update mimetypes.guess_type to allow oper parsing of URLs (GH-15522)" (GH-16724)
This reverts commit 87bd2071c756188b6cd577889fb1682831142ceb.
https://bugs.python.org/issue38449
files:
A Misc/NEWS.d/next/Library/2019-10-11-18-49-00.bpo-38449.9TWMlz.rst
D Misc/NEWS.d/next/Library/2019-08-27-01-03-26.bpo-22347._TRpYr.rst
M Lib/mimetypes.py
M Lib/test/test_mimetypes.py
M Lib/test/test_urllib2.py
diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index 9fdd6ebd6348f..9b42bf6dd2ca7 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -114,8 +114,7 @@ def guess_type(self, url, strict=True):
but non-standard types.
"""
url = os.fspath(url)
- p = urllib.parse.urlparse(url)
- scheme, url = p.scheme, p.path
+ scheme, url = urllib.parse._splittype(url)
if scheme == 'data':
# syntax of data URLs:
# dataurl := "data:" [ mediatype ] [ ";base64" ] "," data
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index 7761c3fe867a7..bfd5eeedaa77b 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -51,14 +51,6 @@ def test_non_standard_types(self):
eq(self.db.guess_type('foo.xul', strict=False), ('text/xul', None))
eq(self.db.guess_extension('image/jpg', strict=False), '.jpg')
- def test_url(self):
- result = self.db.guess_type('http://host.html')
- msg = 'URL only has a host name, not a file'
- self.assertSequenceEqual(result, (None, None), msg)
- result = self.db.guess_type('http://example.com/host.html')
- msg = 'Should be text/html'
- self.assertSequenceEqual(result, ('text/html', None), msg)
-
def test_guess_all_types(self):
eq = self.assertEqual
unless = self.assertTrue
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 186a96765971a..8abedaac9850a 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -742,7 +742,7 @@ def connect_ftp(self, user, passwd, host, port, dirs,
["foo", "bar"], "", None),
("ftp://localhost/baz.gif;type=a",
"localhost", ftplib.FTP_PORT, "", "", "A",
- [], "baz.gif", "image/gif"),
+ [], "baz.gif", None), # XXX really this should guess image/gif
]:
req = Request(url)
req.timeout = None
diff --git a/Misc/NEWS.d/next/Library/2019-08-27-01-03-26.bpo-22347._TRpYr.rst b/Misc/NEWS.d/next/Library/2019-08-27-01-03-26.bpo-22347._TRpYr.rst
deleted file mode 100644
index 1a3c19938217c..0000000000000
--- a/Misc/NEWS.d/next/Library/2019-08-27-01-03-26.bpo-22347._TRpYr.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Update mimetypes.guess_type to allow proper parsing of URLs with only a host name.
-Patch by Dong-hee Na.
diff --git a/Misc/NEWS.d/next/Library/2019-10-11-18-49-00.bpo-38449.9TWMlz.rst b/Misc/NEWS.d/next/Library/2019-10-11-18-49-00.bpo-38449.9TWMlz.rst
new file mode 100644
index 0000000000000..f7b1dbf8d8951
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-10-11-18-49-00.bpo-38449.9TWMlz.rst
@@ -0,0 +1,2 @@
+Revert GH-15522, which introduces a regression in
+:meth:`mimetypes.guess_type` due to improper handling of filenames as urls.
More information about the Python-checkins
mailing list