summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wójcik <wojcikstefan@gmail.com>2016-04-21 06:18:39 +0200
committerDB Tsai, Apache Spark Committer <dbtsai@dbtsai.com>2016-04-20 21:18:39 -0700
commit40e441782286b62caf521892af6b6e83021b5898 (patch)
treeff6265f4f1d1cc669bc7f0ca7fe6f9d802fc2f63
parentcbf1c8686fdef2b1459b714d49856338f63c574e (diff)
downloadpython-mimeparse-40e441782286b62caf521892af6b6e83021b5898.tar.gz
make sure mimeparse gracefully handles an invalid mime type of the form "text/extra/part" (#14)
-rw-r--r--mimeparse.py5
-rw-r--r--testdata.json3
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]
]
}