diff --git a/aiohttp/helpers.py b/aiohttp/helpers.py index 486b4976cac..fbdd6653fd0 100644 --- a/aiohttp/helpers.py +++ b/aiohttp/helpers.py @@ -373,7 +373,7 @@ def parse_mimetype(mimetype: str) -> MimeType: parts = mimetype.split(";") params: MultiDict[str] = MultiDict() for item in parts[1:]: - if not item: + if not item.strip(): continue key, _, value = item.partition("=") params.add(key.lower().strip(), value.strip(' "')) diff --git a/tests/test_helpers.py b/tests/test_helpers.py index 9c1193a7a87..197cbfaf61c 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -60,6 +60,27 @@ "text/plain;base64", helpers.MimeType("text", "plain", "", MultiDict({"base64": ""})), ), + ( + "text/html; ", + helpers.MimeType("text", "html", "", MultiDictProxy(MultiDict())), + ), + ( + "text/html; ", + helpers.MimeType("text", "html", "", MultiDictProxy(MultiDict())), + ), + ( + "text/html;\t", + helpers.MimeType("text", "html", "", MultiDictProxy(MultiDict())), + ), + ( + "text/html; charset=utf-8; ", + helpers.MimeType( + "text", + "html", + "", + MultiDictProxy(MultiDict({"charset": "utf-8"})), + ), + ), ], ) def test_parse_mimetype(mimetype, expected) -> None: