def test_post_requests_combined_url(requests_mock): """ The requested URL is the concatenation of the service_base of the RESTApiClient instance and the relative URL passed to RESTApiClient.get(). """ requests_mock.post(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.post('post/example', json_data={'pay': 'load'}) assert response.request.url == 'http://example.com/service/uri_base/post/example'
def test_get_requests_combined_url(requests_mock): """ The requested URL is the concatenation of the service_base of the RESTApiClient instance and the relative URL passed to RESTApiClient.get(). """ requests_mock.get(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.get('get/example') assert response.request.url == 'http://example.com/service/uri_base/get/example'
def test_get_specifies_body_content_type(requests_mock): # FIXME: Does this make any sense? # As far as I can tell, the 'Content-Type' in the request headers specifies # the content type of the body of the request, not of the body of the response. # While GET requests can have a body (which the server should ignore if present), # we don't send a body in the request. Specifying an absent body's content type # seems rather nonsensical. requests_mock.get(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.get('get/example') assert response.request.headers[ 'Content-Type'] == 'application/json; charset=UTF-8'
def test_post_returns_received_response(requests_mock): requests_mock.post(ANY, json={'some response': 'you posted it'}) c = RESTApiClient('http://example.com/service/uri_base/') response = c.post('post/example', json_data={'pay': 'load'}) assert response.json() == {'some response': 'you posted it'}
def test_post_sends_payload_as_json_body(requests_mock): requests_mock.post(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.post('post/example', json_data={'pay': 'load'}) assert response.request.json() == {'pay': 'load'}
def test_post_specifies_body_content_type(requests_mock): requests_mock.post(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.post('post/example', json_data={'pay': 'load'}) assert response.request.headers[ 'Content-Type'] == 'application/json; charset=UTF-8'
def test_get_returns_received_response(requests_mock): requests_mock.get(ANY, json={'some response': 'you got it'}) c = RESTApiClient('http://example.com/service/uri_base/') response = c.get('get/example') assert response.json() == {'some response': 'you got it'}
def test_get_sends_payload_in_query_string(requests_mock): requests_mock.get(ANY) c = RESTApiClient('http://example.com/service/uri_base/') response = c.get('get/example', params={'some_key': b'a value'}) assert response.request.url == 'http://example.com/service/uri_base/get/example?some_key=a+value'