From 8bb5b61e0efe56170c48d55d00e7426f6952648a Mon Sep 17 00:00:00 2001 From: Dan Mick Date: Fri, 25 Jul 2025 13:18:55 -0700 Subject: [PATCH] Include headers set by BaseEngine() in requests BaseEngine.construct_request_kwargs() fails to preserve existing headers set in self.requests by BaseEngine.__init__. Merge the new headers with the existing engine headers. (This was noticed with 'key' for API access via key.) Fixes: https://github.com/maxtepkeev/python-redmine/issues/353 Signed-off-by: Dan Mick --- redminelib/engines/base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/redminelib/engines/base.py b/redminelib/engines/base.py index 22a2388..ff8ebc2 100644 --- a/redminelib/engines/base.py +++ b/redminelib/engines/base.py @@ -60,7 +60,11 @@ def construct_request_kwargs(self, method, headers, params, data): :param data: (required). Data to send in the body of the request. :type data: dict, bytes or file-like object """ - kwargs = dict(self.requests, **{'data': data or {}, 'params': params or {}, 'headers': headers or {}}) + # headers may be supplied in __init__; merge in any newly-requested headers + merged_headers = headers or {} + if 'headers' in self.requests: + merged_headers = self.requests['headers'] | merged_headers + kwargs = dict(self.requests, **{'data': data or {}, 'params': params or {}, 'headers': merged_headers}) if method in ('post', 'put', 'patch') and 'Content-Type' not in kwargs['headers']: kwargs['data'] = json.dumps(data)