From c047613e4dfc3c60dd1af1316f2ffd6f8588b169 Mon Sep 17 00:00:00 2001 From: Kevin Deisz Date: Thu, 20 Apr 2017 17:52:13 -0400 Subject: [PATCH] Use the params key for get requests Get request parameters (for instance for the /logs) endpoint are not being correctly respected by the server because they're coming in the body of the request. This PR changes them to come through as query parameters so that they will be respected. --- maxcdn/maxcdn.py | 4 +++- test/test.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/maxcdn/maxcdn.py b/maxcdn/maxcdn.py index 957f7c2..7b719aa 100644 --- a/maxcdn/maxcdn.py +++ b/maxcdn/maxcdn.py @@ -37,7 +37,9 @@ def _data_request(self, method, end_point, data, **kwargs): params = urlparse.parse_qs(params) data = params action = getattr(self.client, method) - response = action(self._get_url(end_point), data=data, + + kwargs["params" if method == "get" else "data"] = data + response = action(self._get_url(end_point), headers=self._get_headers(json=True), **kwargs) if (response.status_code > 299): diff --git a/test/test.py b/test/test.py index 7b4275a..f9de585 100644 --- a/test/test.py +++ b/test/test.py @@ -11,7 +11,9 @@ def mock_request(method, url, *args, **kwargs): class Response(object): def __init__(self, method, code=200, data={"foo": "bar"}): - self._json = {"code": code, "method": method, "data": data} + data_key = "params" if method == "get" else "data" + self._json = {"code": code, "method": method, data_key: data} + self.status_code = code self.reason = "Success" self.headers = "" @@ -85,7 +87,7 @@ def test_get(self): requests.Session.request = mock.create_autospec(mock_request, return_value=response("get")) - expected = {"code": 200, "method": "get", "data": {"foo": "bar"}} + expected = {"code": 200, "method": "get", "params": {"foo": "bar"}} self.assertEqual(self.maxcdn.get("/get.json"), expected) requests.Session.request = mock.create_autospec(mock_request,