summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mimeparse.py3
-rw-r--r--testdata.json8
2 files changed, 11 insertions, 0 deletions
diff --git a/mimeparse.py b/mimeparse.py
index 897b2df..a38278a 100644
--- a/mimeparse.py
+++ b/mimeparse.py
@@ -110,6 +110,9 @@ def quality_and_fitness_parsed(mime_type, parsed_ranges):
])
fitness += param_matches
+ # finally, add the target's "q" param (between 0 and 1)
+ fitness += float(target_params.get('q', 1))
+
if fitness > best_fitness:
best_fitness = fitness
best_fit_q = params['q']
diff --git a/testdata.json b/testdata.json
index cd655c8..07ace39 100644
--- a/testdata.json
+++ b/testdata.json
@@ -167,6 +167,14 @@
],
[
[
+ ["application/json;q=1.0", "text/html;q=0.9", "text/plain;q=0.1"],
+ "*/*"
+ ],
+ "application/json;q=1.0",
+ "*/* match should pick an acceptable type with the highest quality"
+ ],
+ [
+ [
["application/json", "text/html"],
"text"
],