diff options
| author | robot-piglet <[email protected]> | 2024-06-29 11:45:31 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2024-06-29 11:52:41 +0300 |
| commit | 632b3cedb8e12fbbb0bcd1bdbf7ec5686725b7e9 (patch) | |
| tree | 38164f3cf78dc378be566fd9b04e0dda83700a2b /contrib/python/responses | |
| parent | cb38d5c70aed1911b32b11ae32e90585d4d27cc3 (diff) | |
Intermediate changes
Diffstat (limited to 'contrib/python/responses')
| -rw-r--r-- | contrib/python/responses/py3/.dist-info/METADATA | 2 | ||||
| -rw-r--r-- | contrib/python/responses/py3/responses/__init__.py | 7 | ||||
| -rw-r--r-- | contrib/python/responses/py3/responses/_recorder.py | 30 | ||||
| -rw-r--r-- | contrib/python/responses/py3/ya.make | 2 |
4 files changed, 37 insertions, 4 deletions
diff --git a/contrib/python/responses/py3/.dist-info/METADATA b/contrib/python/responses/py3/.dist-info/METADATA index c12dde8ca85..7085a1a9f06 100644 --- a/contrib/python/responses/py3/.dist-info/METADATA +++ b/contrib/python/responses/py3/.dist-info/METADATA @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: responses -Version: 0.25.2 +Version: 0.25.3 Summary: A utility library for mocking out the `requests` Python library. Home-page: https://github.com/getsentry/responses Author: David Cramer diff --git a/contrib/python/responses/py3/responses/__init__.py b/contrib/python/responses/py3/responses/__init__.py index 8c12345a60e..097e61ee997 100644 --- a/contrib/python/responses/py3/responses/__init__.py +++ b/contrib/python/responses/py3/responses/__init__.py @@ -814,7 +814,11 @@ class RequestsMock: if adding_headers is not None: kwargs.setdefault("headers", adding_headers) - if "content_type" in kwargs and "headers" in kwargs: + if ( + "content_type" in kwargs + and "headers" in kwargs + and kwargs["headers"] is not None + ): header_keys = [header.lower() for header in kwargs["headers"]] if "content-type" in header_keys: raise RuntimeError( @@ -852,6 +856,7 @@ class RequestsMock: url=rsp["url"], body=rsp["body"], status=rsp["status"], + headers=rsp["headers"] if "headers" in rsp else None, content_type=rsp["content_type"], auto_calculate_content_length=rsp["auto_calculate_content_length"], ) diff --git a/contrib/python/responses/py3/responses/_recorder.py b/contrib/python/responses/py3/responses/_recorder.py index a533e8489ad..64533e29720 100644 --- a/contrib/python/responses/py3/responses/_recorder.py +++ b/contrib/python/responses/py3/responses/_recorder.py @@ -36,6 +36,29 @@ def _remove_nones(d: "Any") -> "Any": return d +def _remove_default_headers(data: "Any") -> "Any": + """ + It would be too verbose to store these headers in the file generated by the + record functionality. + """ + if isinstance(data, dict): + keys_to_remove = [ + "Content-Length", + "Content-Type", + "Date", + "Server", + "Connection", + "Content-Encoding", + ] + for i, response in enumerate(data["responses"]): + for key in keys_to_remove: + if key in response["response"]["headers"]: + del data["responses"][i]["response"]["headers"][key] + if not response["response"]["headers"]: + del data["responses"][i]["response"]["headers"] + return data + + def _dump( registered: "List[BaseResponse]", destination: "Union[BinaryIO, TextIOWrapper]", @@ -63,7 +86,8 @@ def _dump( "Cannot dump response object." "Probably you use custom Response object that is missing required attributes" ) from exc - dumper(_remove_nones(data), destination) + + dumper(_remove_default_headers(_remove_nones(data)), destination) class Recorder(RequestsMock): @@ -116,11 +140,15 @@ class Recorder(RequestsMock): request.params = self._parse_request_params(request.path_url) # type: ignore[attr-defined] request.req_kwargs = kwargs # type: ignore[attr-defined] requests_response = _real_send(adapter, request, **kwargs) + headers_values = { + key: value for key, value in requests_response.headers.items() + } responses_response = Response( method=str(request.method), url=str(requests_response.request.url), status=requests_response.status_code, body=requests_response.text, + headers=headers_values, ) self._registry.add(responses_response) return requests_response diff --git a/contrib/python/responses/py3/ya.make b/contrib/python/responses/py3/ya.make index 04114979d90..262b9ef33fe 100644 --- a/contrib/python/responses/py3/ya.make +++ b/contrib/python/responses/py3/ya.make @@ -2,7 +2,7 @@ PY3_LIBRARY() -VERSION(0.25.2) +VERSION(0.25.3) LICENSE(Apache-2.0) |
