summaryrefslogtreecommitdiffstats
path: root/contrib/python/responses
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2024-06-29 11:45:31 +0300
committerrobot-piglet <[email protected]>2024-06-29 11:52:41 +0300
commit632b3cedb8e12fbbb0bcd1bdbf7ec5686725b7e9 (patch)
tree38164f3cf78dc378be566fd9b04e0dda83700a2b /contrib/python/responses
parentcb38d5c70aed1911b32b11ae32e90585d4d27cc3 (diff)
Intermediate changes
Diffstat (limited to 'contrib/python/responses')
-rw-r--r--contrib/python/responses/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/responses/py3/responses/__init__.py7
-rw-r--r--contrib/python/responses/py3/responses/_recorder.py30
-rw-r--r--contrib/python/responses/py3/ya.make2
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)