def test_encode_empty_dict(self): body, headers = encode_json_data({}) self.assertEqual(json.loads(body), {}) self.assertEqual( headers, { "Content-Length": "2", "Content-Type": "application/json" }, )
def test_encode_dict(self): data = {"param": "value", "alt": [1, 2, 3, 4]} body, headers = encode_json_data(data) self.assertEqual(json.loads(body), data) self.assertEqual( headers, { "Content-Length": "39", "Content-Type": "application/json" }, )
def _formulate_change(self, path, params, as_json=False): """Return URL, headers, and body for a non-GET request. This is similar to _formulate_get, except parameters are encoded as a multipart form body. :param path: Path to the object to issue a GET on. :param params: A dict of parameter values. :param as_json: Encode params as application/json instead of multipart/form-data. Only use this if you know the API already supports JSON requests. :return: A tuple: URL, headers, and body for the request. """ url = self._make_url(path) if "op" in params: params = dict(params) op = params.pop("op") url += "?" + urlencode([("op", op)]) if as_json: body, headers = encode_json_data(params) else: body, headers = encode_multipart_data(params, {}) self.auth.sign_request(url, headers) return url, headers, body
def _formulate_change(self, path, params, as_json=False): """Return URL, headers, and body for a non-GET request. This is similar to _formulate_get, except parameters are encoded as a multipart form body. :param path: Path to the object to issue a GET on. :param params: A dict of parameter values. :param as_json: Encode params as application/json instead of multipart/form-data. Only use this if you know the API already supports JSON requests. :return: A tuple: URL, headers, and body for the request. """ url = self._make_url(path) if 'op' in params: params = dict(params) op = params.pop('op') url += '?' + urlencode([('op', op)]) if as_json: body, headers = encode_json_data(params) else: body, headers = encode_multipart_data(params, {}) self.auth.sign_request(url, headers) return url, headers, body
def assertEncodeJSONData(self, expected_body, expected_headers, params): self.assertEqual( (expected_body, expected_headers), encode_json_data(params))
def assertEncodeJSONData(self, expected_body, expected_headers): observed_body, observed_headers = encode_json_data(expected_body) self.assertEqual(observed_headers, expected_headers) self.assertEqual(json.loads(observed_body), expected_body)
def assertEncodeJSONData(self, expected_body, expected_headers): observed_body, observed_headers = encode_json_data(expected_body) self.expectThat(observed_headers, Equals(expected_headers)) self.expectThat(json.loads(observed_body), Equals(expected_body))