diff --git a/AUTHORS.md b/AUTHORS.md index 61365d3..7cc6685 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -34,4 +34,5 @@ Add yourself as a contributor! * [Tatsuji Tsuchiya](https://github.com/ta2xeo) * [Chris McGraw](https://github.com/mitgr81) * [Ken Koontz](https://github.com/kennethkoontz) +* [Markus Leuthold](https://github.com/githubkusi) * (your name here) diff --git a/rauth/session.py b/rauth/session.py index b46dd1e..2bd1f00 100644 --- a/rauth/session.py +++ b/rauth/session.py @@ -225,7 +225,8 @@ def _parse_optional_params(self, oauth_params, req_kwargs): for oauth_param in OPTIONAL_OAUTH_PARAMS: if oauth_param in params: oauth_params[oauth_param] = params.pop(oauth_param) - if oauth_param in data: + + if type(data) is not bytes and oauth_param in data: oauth_params[oauth_param] = data.pop(oauth_param) if params: diff --git a/tests/test_session.py b/tests/test_session.py index 4d69722..ba9012d 100644 --- a/tests/test_session.py +++ b/tests/test_session.py @@ -55,6 +55,13 @@ def test_request_with_optional_data_as_string(self, mock_request): r = self.session.request('POST', 'http://example.com/', data=data) self.assert_ok(r) + @patch.object(requests.Session, 'request') + def test_request_with_optional_data_as_binary(self, mock_request): + mock_request.return_value = self.response + data = bytes(1) + r = self.session.request('POST', 'http://example.com/', data=data) + self.assert_ok(r) + @patch.object(requests.Session, 'request') def test_request_with_optional_params_with_data(self, mock_request): mock_request.return_value = self.response