diff --git a/HISTORY.md b/HISTORY.md index e6dcfc17..a3406bb5 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 d2a92cff..7029c7fc 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: