Skip to content

Commit 009ec9f

Browse files
authored
Avoid always passing on an empty body even if not given (#1471)
1 parent 37467f1 commit 009ec9f

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

jira/resilientsession.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def _jira_prepare(self, **original_kwargs) -> dict:
159159
request_headers.update(original_kwargs.get("headers", {}))
160160
prepared_kwargs["headers"] = request_headers
161161

162-
data = original_kwargs.get("data", {})
162+
data = original_kwargs.get("data", None)
163163
if isinstance(data, dict):
164164
# mypy ensures we don't do this,
165165
# but for people subclassing we should preserve old behaviour

tests/test_resilientsession.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,22 @@ def test_passthrough_class():
107107
# WHEN: the dict of request args are prepared
108108
# THEN: The exact same dict is returned
109109
assert passthrough_class.prepare(my_kwargs) is my_kwargs
110+
111+
112+
@patch("requests.Session.request")
113+
def test_unspecified_body_remains_unspecified(mocked_request_method: Mock):
114+
# Disable retries for this test.
115+
session = jira.resilientsession.ResilientSession(max_retries=0)
116+
# Data is not specified here.
117+
session.get(url="mocked_url")
118+
kwargs = mocked_request_method.call_args.kwargs
119+
assert "data" not in kwargs
120+
121+
122+
@patch("requests.Session.request")
123+
def test_nonempty_body_is_forwarded(mocked_request_method: Mock):
124+
# Disable retries for this test.
125+
session = jira.resilientsession.ResilientSession(max_retries=0)
126+
session.get(url="mocked_url", data={"some": "fake-data"})
127+
kwargs = mocked_request_method.call_args.kwargs
128+
assert kwargs["data"] == '{"some": "fake-data"}'

0 commit comments

Comments
 (0)