Skip to content

Commit c1c9b29

Browse files
Pushkar Chawdaedhzsz
Pushkar Chawda
authored andcommitted
Added unit test to test empty errorMessage changes
1 parent f02da5c commit c1c9b29

File tree

2 files changed

+63
-5
lines changed

2 files changed

+63
-5
lines changed

Diff for: awslambdaric/bootstrap.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,11 @@ def result(*args):
9090

9191

9292
def make_error(error_message, error_type, stack_trace):
93-
result = {'errorMessage': error_message if error_message else "",
94-
'errorType': error_type if error_type else "",
95-
'stackTrace': stack_trace if stack_trace else []}
93+
result = {
94+
"errorMessage": error_message if error_message else "",
95+
"errorType": error_type if error_type else "",
96+
"stackTrace": stack_trace if stack_trace else [],
97+
}
9698
return result
9799

98100

Diff for: test/test_bootstrap.py

+58-2
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,58 @@ def __init__(self, message):
296296
self.assertEqual(len(xray_fault["paths"]), 1)
297297
self.assertTrue(xray_fault["paths"][0].endswith(os.path.relpath(__file__)))
298298

299+
def test_handle_event_request_custom_empty_error_message_exception(self):
300+
def raise_exception_handler(json_input, lambda_context):
301+
class MyError(Exception):
302+
def __init__(self, message):
303+
self.message = message
304+
305+
raise MyError("")
306+
307+
expected_response = {"errorType": "MyError", "errorMessage": ""}
308+
bootstrap.handle_event_request(
309+
self.lambda_runtime,
310+
raise_exception_handler,
311+
"invoke_id",
312+
self.event_body,
313+
"application/json",
314+
{},
315+
{},
316+
"invoked_function_arn",
317+
0,
318+
bootstrap.StandardLogSink(),
319+
)
320+
args, _ = self.lambda_runtime.post_invocation_error.call_args
321+
error_response = json.loads(args[1])
322+
self.assertEqual(args[0], "invoke_id")
323+
self.assertTrue(
324+
expected_response.items() <= error_response.items(),
325+
"Expected response is not a subset of the actual response\nExpected: {}\nActual: {}".format(
326+
expected_response, error_response
327+
),
328+
)
329+
xray_fault = json.loads(args[2])
330+
self.assertEqual(xray_fault["working_directory"], self.working_directory)
331+
self.assertEqual(len(xray_fault["exceptions"]), 1)
332+
self.assertEqual(
333+
xray_fault["exceptions"][0]["message"], expected_response["errorMessage"]
334+
)
335+
self.assertEqual(
336+
xray_fault["exceptions"][0]["type"], expected_response["errorType"]
337+
)
338+
self.assertEqual(len(xray_fault["exceptions"][0]["stack"]), 1)
339+
self.assertEqual(
340+
xray_fault["exceptions"][0]["stack"][0]["label"], "raise_exception_handler"
341+
)
342+
self.assertIsInstance(xray_fault["exceptions"][0]["stack"][0]["line"], int)
343+
self.assertTrue(
344+
xray_fault["exceptions"][0]["stack"][0]["path"].endswith(
345+
os.path.relpath(__file__)
346+
)
347+
)
348+
self.assertEqual(len(xray_fault["paths"]), 1)
349+
self.assertTrue(xray_fault["paths"][0].endswith(os.path.relpath(__file__)))
350+
299351
def test_handle_event_request_no_module(self):
300352
def unable_to_import_module(json_input, lambda_context):
301353
import invalid_module
@@ -835,7 +887,9 @@ def test_log_error_standard_log_sink(self, mock_stdout):
835887
err_to_log = bootstrap.make_error("Error message", "ErrorType", None)
836888
bootstrap.log_error(err_to_log, bootstrap.StandardLogSink())
837889

838-
expected_logged_error = "[ERROR] ErrorType: Error message\rTraceback (most recent call last):\n"
890+
expected_logged_error = (
891+
"[ERROR] ErrorType: Error message\rTraceback (most recent call last):\n"
892+
)
839893
self.assertEqual(mock_stdout.getvalue(), expected_logged_error)
840894

841895
def test_log_error_framed_log_sink(self):
@@ -844,7 +898,9 @@ def test_log_error_framed_log_sink(self):
844898
err_to_log = bootstrap.make_error("Error message", "ErrorType", None)
845899
bootstrap.log_error(err_to_log, log_sink)
846900

847-
expected_logged_error = "[ERROR] ErrorType: Error message\nTraceback (most recent call last):"
901+
expected_logged_error = (
902+
"[ERROR] ErrorType: Error message\nTraceback (most recent call last):"
903+
)
848904

849905
with open(temp_file.name, "rb") as f:
850906
content = f.read()

0 commit comments

Comments
 (0)