@@ -51,7 +51,9 @@ def patch(self, *args, **kwargs):
51
51
def reset_tracing_config (mocker ):
52
52
Tracer ._reset_config ()
53
53
# reset global cold start module
54
- mocker .patch ("aws_lambda_powertools.tracing.tracer.is_cold_start" , return_value = True )
54
+ mocker .patch (
55
+ "aws_lambda_powertools.tracing.tracer.is_cold_start" , new_callable = mocker .PropertyMock (return_value = True )
56
+ )
55
57
yield
56
58
57
59
@@ -79,7 +81,7 @@ class InSubsegment(NamedTuple):
79
81
yield in_subsegment
80
82
81
83
82
- def test_tracer_lambda_handler (mocker , dummy_response , provider_stub , in_subsegment_mock ):
84
+ def test_tracer_lambda_handler_subsegment (mocker , dummy_response , provider_stub , in_subsegment_mock ):
83
85
# GIVEN Tracer is initialized with booking as the service name
84
86
provider = provider_stub (in_subsegment = in_subsegment_mock .in_subsegment )
85
87
tracer = Tracer (provider = provider , service = "booking" )
@@ -92,15 +94,13 @@ def handler(event, context):
92
94
handler ({}, mocker .MagicMock ())
93
95
94
96
# THEN we should have a subsegment named handler
95
- # annotate cold start, and add its response as trace metadata
97
+ # add its response as trace metadata
96
98
# and use service name as a metadata namespace
97
99
assert in_subsegment_mock .in_subsegment .call_count == 1
98
100
assert in_subsegment_mock .in_subsegment .call_args == mocker .call (name = "## handler" )
99
101
assert in_subsegment_mock .put_metadata .call_args == mocker .call (
100
102
key = "handler response" , value = dummy_response , namespace = "booking"
101
103
)
102
- assert in_subsegment_mock .put_annotation .call_count == 1
103
- assert in_subsegment_mock .put_annotation .call_args == mocker .call (key = "ColdStart" , value = True )
104
104
105
105
106
106
def test_tracer_method (mocker , dummy_response , provider_stub , in_subsegment_mock ):
@@ -571,3 +571,22 @@ def greeting(name, message):
571
571
572
572
# THEN we should not add any metadata
573
573
assert in_subsegment_mock .put_metadata .call_count == 0
574
+
575
+
576
+ def test_tracer_lambda_handler_cold_start (mocker , dummy_response , provider_stub , in_subsegment_mock ):
577
+ # GIVEN
578
+ provider = provider_stub (in_subsegment = in_subsegment_mock .in_subsegment )
579
+ tracer = Tracer (provider = provider , service = "booking" )
580
+
581
+ # WHEN
582
+ @tracer .capture_lambda_handler
583
+ def handler (event , context ):
584
+ return dummy_response
585
+
586
+ handler ({}, mocker .MagicMock ())
587
+
588
+ # THEN
589
+ assert in_subsegment_mock .put_annotation .call_args == mocker .call (key = "ColdStart" , value = True )
590
+
591
+ handler ({}, mocker .MagicMock ())
592
+ assert in_subsegment_mock .put_annotation .call_args == mocker .call (key = "ColdStart" , value = False )
0 commit comments