diff options
author | Stefan Wójcik <wojcikstefan@gmail.com> | 2016-04-21 06:18:39 +0200 |
---|---|---|
committer | DB Tsai, Apache Spark Committer <dbtsai@dbtsai.com> | 2016-04-20 21:18:39 -0700 |
commit | 40e441782286b62caf521892af6b6e83021b5898 (patch) | |
tree | ff6265f4f1d1cc669bc7f0ca7fe6f9d802fc2f63 | |
parent | cbf1c8686fdef2b1459b714d49856338f63c574e (diff) | |
download | python-mimeparse-40e441782286b62caf521892af6b6e83021b5898.tar.gz |
make sure mimeparse gracefully handles an invalid mime type of the form "text/extra/part" (#14)
-rw-r--r-- | mimeparse.py | 5 | ||||
-rw-r--r-- | testdata.json | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/mimeparse.py b/mimeparse.py index 3563249..8cdb6e2 100644 --- a/mimeparse.py +++ b/mimeparse.py @@ -50,10 +50,11 @@ def parse_mime_type(mime_type): if full_type == '*': full_type = '*/*' - if '/' not in full_type: + type_parts = full_type.split('/') if '/' in full_type else None + if not type_parts or len(type_parts) > 2: raise MimeTypeParseException("Can't parse type \"{}\"".format(full_type)) - (type, subtype) = full_type.split('/') + (type, subtype) = type_parts return (type.strip(), subtype.strip(), params) diff --git a/testdata.json b/testdata.json index c23f668..bb89e6f 100644 --- a/testdata.json +++ b/testdata.json @@ -41,6 +41,7 @@ "parse_mime_type": [ ["application/xhtml;q=0.5", ["application", "xhtml", {"q": "0.5"}]], ["application/xhtml;q=0.5;ver=1.2", ["application", "xhtml", {"q": "0.5", "ver": "1.2"}]], - ["text", null] + ["text", null], + ["text/something/invalid", null] ] } |