summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Cook <JWCook@users.noreply.github.com>2022-01-01 11:59:31 -0600
committerGitHub <noreply@github.com>2022-01-01 11:59:31 -0600
commit347048289ed25ec847a40dc5971ee8a538b4aebf (patch)
tree8df10317b336cbcaaf3cd370df04983230b109c1
parent71ea5213bace27e64ae1c9e21b949ce98dc432cc (diff)
parent99b77935f1eac273b27c495c10d906567ff75cc0 (diff)
downloadrequests-cache-347048289ed25ec847a40dc5971ee8a538b4aebf.tar.gz
Merge pull request #474 from grubberr/improve_get_matched_headers
make order of headers repeatable
-rw-r--r--HISTORY.md1
-rw-r--r--requests_cache/cache_keys.py4
2 files changed, 4 insertions, 1 deletions
diff --git a/HISTORY.md b/HISTORY.md
index e6dcfc1..a3406bb 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -23,6 +23,7 @@
* Some micro-optimizations for request matching
**Bugfixes:**
+* Fix regression bug causing headers used for cache key to not guarantee sort order
* Handle some additional corner cases when normalizing request data
* Add support for `BaseCache` keyword arguments passed along with a backend instance
* Fix issue with cache headers not being used correctly if `cache_control=True` is used with an `expire_after` value
diff --git a/requests_cache/cache_keys.py b/requests_cache/cache_keys.py
index d2a92cf..7029c7f 100644
--- a/requests_cache/cache_keys.py
+++ b/requests_cache/cache_keys.py
@@ -81,7 +81,9 @@ def get_matched_headers(
else:
included = set(headers) - DEFAULT_EXCLUDE_HEADERS
- return [f'{k.lower()}={headers[k]}' for k in included if k in headers]
+ return [
+ f'{k.lower()}={headers[k]}' for k in sorted(included, key=lambda x: x.lower()) if k in headers
+ ]
def normalize_request(request: AnyRequest, ignored_parameters: ParamList) -> AnyPreparedRequest: