Skip to content
This repository has been archived by the owner on Apr 4, 2019. It is now read-only.

Commit

Permalink
Merge pull request #59 from CloudHeads/bugfix/add-test-fo-empty-event
Browse files Browse the repository at this point in the history
Add tests for empty events to prevent exceptions
  • Loading branch information
Govinda-Fichtner committed Sep 19, 2017
2 parents a64f06d + a3651d7 commit b9a2c12
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lambda_utils/logger/sentry.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def add_user_context(self, event):
for key, value in event['requestContext']['authorizer'].items():
user_context[key.lower()] = value
self.client.user_context(user_context)
except KeyError:
except (KeyError, TypeError):
logging.debug("No user context recognized in event['requestContext']['authorizer']")

def add_x_ray_tags(self, event):
Expand Down
3 changes: 2 additions & 1 deletion lambda_utils/response_handlers/api_gateway.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

class ApiGateway(BaseResponseHandler):
def on_execution(self, event):
event['body'] = extract_body(event)
if type(event) is dict:
event['body'] = extract_body(event)
return event

def on_exception(self, ex):
Expand Down
6 changes: 6 additions & 0 deletions tests/logger/test_sentry.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ def test_add_user_context_set_client_context(self, client_mock, event):

client_mock.user_context.assert_called_once_with({'key': 'value'})

@patch.object(logging, 'debug')
def test_add_user_context_with_none_event(self, debug_mock, event):
Sentry().add_user_context(None)

debug_mock.assert_called_once()

@patch.object(module.Sentry, 'client')
def test_add_x_ray_tags_adds_requester_trace_id(self, client_mock, event, x_amzn_trace_id):
Sentry().add_x_ray_tags(event)
Expand Down
5 changes: 5 additions & 0 deletions tests/response_handlers/test_api_gateway.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ def test_on_execution_calls_extract_body(self, extract_body_mock):
extract_body_mock.assert_called_once_with(event)
assert_that(result, equal_to({'body': extract_body_mock.return_value, 'some': 'event'}))

def test_on_execution_calls_with_none_event(self):
result = ApiGateway().on_execution(None)

assert_that(result, equal_to(None))

def test_on_timeout_exception(self):
result = ApiGateway().on_exception(ex=TimeoutError())

Expand Down

0 comments on commit b9a2c12

Please sign in to comment.