Skip to content

Commit 2ce1c6d

Browse files
committed
fix(tests): update metrics DurableContext test to handle multiple EMF blobs
- Fix test to use capture_metrics_output_multiple_emf_objects for cold start tests - Remove duplicate assertion lines - All 9 DurableContext tests now passing
1 parent d7f62e0 commit 2ce1c6d

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

tests/functional/metrics/required_dependencies/test_metrics_durable_context.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,25 @@ def capture_metrics_output(capsys):
1717
return json.loads(capsys.readouterr().out.strip())
1818

1919

20+
def capture_metrics_output_multiple_emf_objects(capsys):
21+
return [json.loads(line.strip()) for line in capsys.readouterr().out.split("\n") if line]
22+
23+
2024
def reset_cold_start_flag():
2125
cold_start.is_cold_start = True
2226

2327

28+
@pytest.fixture
29+
def lambda_context():
30+
lambda_context = {
31+
"function_name": "test",
32+
"memory_limit_in_mb": 128,
33+
"invoked_function_arn": "arn:aws:lambda:eu-west-1:809313241:function:test",
34+
"aws_request_id": "52fdfc07-2182-154f-163f-5f0f9a621d72",
35+
}
36+
return namedtuple("LambdaContext", lambda_context.keys())(*lambda_context.values())
37+
38+
2439
@pytest.fixture
2540
def durable_context(lambda_context):
2641
"""Create a mock DurableContext with embedded Lambda context."""
@@ -79,12 +94,13 @@ def lambda_handler(evt, context):
7994
lambda_handler({}, durable_ctx)
8095

8196
# THEN ColdStart metric should be captured with the function name from unwrapped context
82-
output = capture_metrics_output(capsys)
97+
outputs = capture_metrics_output_multiple_emf_objects(capsys)
8398

84-
assert "ColdStart" in output or output.get("ColdStart") == [1.0]
85-
# The function_name should come from the unwrapped lambda_context
86-
assert output.get("function_name") == "durable_test_function"
87-
assert output["service"] == service
99+
# Cold start is in a separate EMF blob
100+
cold_start_output = outputs[0]
101+
assert cold_start_output["ColdStart"] == [1.0]
102+
assert cold_start_output["function_name"] == "durable_test_function"
103+
assert cold_start_output["service"] == service
88104

89105

90106
def test_log_metrics_capture_cold_start_with_durable_context_explicit_function_name(

0 commit comments

Comments
 (0)