Skip to content

Commit

Permalink
Added support for PUT. Unit tests for error response for 100% coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
luisfcolon committed Sep 18, 2017
1 parent e0a2712 commit e574d4e
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
3 changes: 3 additions & 0 deletions client/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ def delete(self, **kwargs):
def patch(self, **kwargs):
return self.request('PATCH', data=kwargs)

def put(self, **kwargs):
return self.request('PUT', data=kwargs)

def request(self, method, data=None, params=None):
try:
response = self.session.request(method,
Expand Down
3 changes: 3 additions & 0 deletions client/responses/error.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ def __init__(self, errors, status_code):

def json(self):
return self.errors

def __str__(self):
return 'Status: {}, Errors: {}'.format(self.status_code, self.errors)
16 changes: 16 additions & 0 deletions tests/test_api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,22 @@ def test_api_client_post():
assert results.status_code == 200


@responses.activate
def test_api_client_put():
responses.add(responses.PUT, 'http://woot.com/users/1',
json={ 'data': 'success' }, status=200,
content_type='application/json')

client = ApiClient()
client.base_url = 'http://woot.com'

data = { 'firstname': 'luis' }
results = client.users(1).put(**data)

assert results.json() == { 'data': 'success' }
assert results.status_code == 200


@responses.activate
def test_api_client_delete():
responses.add(responses.DELETE, 'http://woot.com/users/1',
Expand Down
22 changes: 22 additions & 0 deletions tests/test_error_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from client.responses.error import ErrorResponse


def test_error_response_init():
error = ErrorResponse('woops', 404)

assert error.status_code == 404
assert error.errors == 'woops'
assert error.text == None


def test_error_response_json():
error = ErrorResponse('woops', 404)
errorJson = error.json()

assert errorJson == 'woops'


def test_error_response_tostring():
error = ErrorResponse('woops', 404)

assert error.__str__() == 'Status: 404, Errors: woops'

0 comments on commit e574d4e

Please sign in to comment.