diff options
author | Stefan Wójcik <wojcikstefan@gmail.com> | 2016-10-16 18:53:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-16 18:53:21 -0400 |
commit | 99d9699e19c77b477ef475f312be4c99d8270620 (patch) | |
tree | ccb27ae0cd37dbb1692dc595aa6a01ce3b069c0c | |
parent | d87c40f7116c2f3ba0538d5eee465c2eec63c3f6 (diff) | |
download | python-mimeparse-99d9699e19c77b477ef475f312be4c99d8270620.tar.gz |
let acceptable types specify their quality (#26)
-rw-r--r-- | mimeparse.py | 3 | ||||
-rw-r--r-- | testdata.json | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/mimeparse.py b/mimeparse.py index 7794341..ae942fa 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 64785c4..2ceee39 100644 --- a/testdata.json +++ b/testdata.json @@ -188,6 +188,22 @@ ], [ [ + ["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" + ], + [ + [ + ["text/html;q=0.9", "application/json", "text/plain;q=0.1"], + "*/*" + ], + "application/json", + "*/* match should pick an acceptable type with the highest quality, even if it's implicit" + ], + [ + [ ["application/json", "text/html"], "text" ], |