Skip to content

Commit 97c71e5

Browse files
Adding the test again -- Git was crazy :D
1 parent bf94279 commit 97c71e5

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

tests/functional/test_logger_powertools_formatter.py

+53
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,27 @@
66
import re
77
import string
88
import time
9+
from collections import namedtuple
910

1011
import pytest
1112

1213
from aws_lambda_powertools import Logger
14+
from aws_lambda_powertools.logging.formatter import LambdaPowertoolsFormatter
1315
from aws_lambda_powertools.logging.formatters.datadog import DatadogLogFormatter
1416

1517

18+
@pytest.fixture
19+
def lambda_context():
20+
lambda_context = {
21+
"function_name": "test",
22+
"memory_limit_in_mb": 128,
23+
"invoked_function_arn": "arn:aws:lambda:eu-west-1:809313241:function:test",
24+
"aws_request_id": "52fdfc07-2182-154f-163f-5f0f9a621d72",
25+
}
26+
27+
return namedtuple("LambdaContext", lambda_context.keys())(*lambda_context.values())
28+
29+
1630
@pytest.fixture
1731
def stdout():
1832
return io.StringIO()
@@ -358,3 +372,42 @@ def test_datadog_formatter_use_rfc3339_date(stdout, service_name):
358372
log = capture_logging_output(stdout)
359373

360374
assert re.fullmatch(RFC3339_REGEX, log["timestamp"]) # "2022-10-27T17:42:26.841+0200"
375+
376+
377+
def test_logger_logs_stack_trace_with_formatter_default_value(service_name, stdout):
378+
# GIVEN a Logger instance with LambdaPowertoolsFormatter set explictly
379+
# GIVE serialize_stacktrace default value = True
380+
logger = Logger(service=service_name, stream=stdout, logger_formatter=LambdaPowertoolsFormatter())
381+
382+
# WHEN invoking a Lambda
383+
def handler(event, context):
384+
try:
385+
raise ValueError("something went wrong")
386+
except Exception:
387+
logger.exception("Received an exception")
388+
389+
# THEN we expect a "stack_trace" in log
390+
handler({}, lambda_context)
391+
log = capture_logging_output(stdout)
392+
assert "stack_trace" in log
393+
394+
395+
def test_logger_logs_stack_trace_with_formatter_non_default_value(service_name, stdout):
396+
# GIVEN a Logger instance with serialize_stacktrace = False
397+
logger = Logger(
398+
service=service_name,
399+
stream=stdout,
400+
logger_formatter=LambdaPowertoolsFormatter(serialize_stacktrace=False),
401+
)
402+
403+
# WHEN invoking a Lambda
404+
def handler(event, context):
405+
try:
406+
raise ValueError("something went wrong")
407+
except Exception:
408+
logger.exception("Received an exception")
409+
410+
# THEN we expect a "stack_trace" not in log
411+
handler({}, lambda_context)
412+
log = capture_logging_output(stdout)
413+
assert "stack_trace" not in log

0 commit comments

Comments
 (0)