Skip to content

Commit 70148fd

Browse files
committed
Fix get status_code
1 parent c70d9ed commit 70148fd

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

datadog_lambda/trigger.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,9 @@ def extract_http_status_code_tag(trigger_tags, response):
207207
if response is None:
208208
# Return a 502 status if no response is found
209209
status_code = "502"
210-
elif response.get("statusCode"):
210+
elif hasattr(response, "get"):
211211
status_code = response.get("statusCode")
212+
elif hasattr(response, "status_code"):
213+
status_code = response.status_code
212214

213215
return status_code

tests/test_trigger.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
parse_event_source,
1212
get_event_source_arn,
1313
extract_trigger_tags,
14+
extract_http_status_code_tag,
1415
)
1516

1617
event_samples = "tests/event_samples/"
@@ -328,3 +329,18 @@ def test_extract_trigger_tags_unsupported(self):
328329
event = json.load(event)
329330
tags = extract_trigger_tags(event, ctx)
330331
self.assertEqual(tags, {})
332+
333+
334+
class ExtractHTTPStatusCodeTag(unittest.TestCase):
335+
def test_extract_http_status_code_tag_from_response_dict(self):
336+
trigger_tags = {"function_trigger.event_source": "api-gateway"}
337+
response = {"statusCode": 403}
338+
status_code = extract_http_status_code_tag(trigger_tags, response)
339+
self.assertEqual(status_code, 403)
340+
341+
def test_extract_http_status_code_tag_from_response_object(self):
342+
trigger_tags = {"function_trigger.event_source": "api-gateway"}
343+
response = MagicMock(spec=["status_code"])
344+
response.status_code = 403
345+
status_code = extract_http_status_code_tag(trigger_tags, response)
346+
self.assertEqual(status_code, 403)

0 commit comments

Comments
 (0)