Skip to content

Commit 9bb71eb

Browse files
committed
feat: split sync and async; test for nest fetching
1 parent 15b3285 commit 9bb71eb

File tree

4 files changed

+40
-42
lines changed

4 files changed

+40
-42
lines changed

Diff for: tests/e2e/tracer/handlers/async_capture.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import asyncio
2+
from uuid import uuid4
3+
4+
from aws_lambda_powertools import Tracer
5+
from aws_lambda_powertools.utilities.typing import LambdaContext
6+
7+
tracer = Tracer()
8+
9+
10+
@tracer.capture_method
11+
async def async_get_users():
12+
return [{"id": f"{uuid4()}"} for _ in range(5)]
13+
14+
15+
def lambda_handler(event: dict, context: LambdaContext):
16+
return asyncio.run(async_get_users())

Diff for: tests/e2e/tracer/handlers/basic_handler.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1+
from uuid import uuid4
2+
13
from aws_lambda_powertools import Tracer
24
from aws_lambda_powertools.utilities.typing import LambdaContext
35

46
tracer = Tracer()
57

68

9+
@tracer.capture_method
10+
def get_todos():
11+
return [{"id": f"{uuid4()}", "completed": False} for _ in range(5)]
12+
13+
714
@tracer.capture_lambda_handler
815
def lambda_handler(event: dict, context: LambdaContext):
9-
return "success"
16+
return get_todos()

Diff for: tests/e2e/tracer/handlers/sync_async_capture.py

-25
This file was deleted.

Diff for: tests/e2e/tracer/test_tracer.py

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22

3-
from tests.e2e.tracer.handlers import basic_handler, sync_async_capture
3+
from tests.e2e.tracer.handlers import async_capture, basic_handler
44
from tests.e2e.tracer.infrastructure import TracerStack
55
from tests.e2e.utils import data_builder, data_fetcher
66

@@ -16,20 +16,25 @@ def basic_handler_fn(infrastructure: dict) -> str:
1616

1717

1818
@pytest.fixture
19-
def sync_async_fn_arn(infrastructure: dict) -> str:
20-
return infrastructure.get("SyncAsyncCaptureArn", "")
19+
def async_fn_arn(infrastructure: dict) -> str:
20+
return infrastructure.get("AsyncCaptureArn", "")
2121

2222

2323
@pytest.fixture
24-
def sync_async_fn(infrastructure: dict) -> str:
25-
return infrastructure.get("SyncAsyncCapture", "")
24+
def async_fn(infrastructure: dict) -> str:
25+
return infrastructure.get("AsyncCapture", "")
2626

2727

2828
def test_lambda_handler_trace_is_visible(basic_handler_fn_arn: str, basic_handler_fn: str):
2929
# GIVEN
3030
handler_name = basic_handler.lambda_handler.__name__
3131
handler_subsegment = f"## {handler_name}"
3232
handler_metadata_key = f"{handler_name} response"
33+
34+
method_name = basic_handler.get_todos.__name__
35+
method_subsegment = f"## {method_name}"
36+
handler_metadata_key = f"{method_name} response"
37+
3338
trace_query = data_builder.build_trace_default_query(function_name=basic_handler_fn)
3439

3540
# WHEN
@@ -41,29 +46,24 @@ def test_lambda_handler_trace_is_visible(basic_handler_fn_arn: str, basic_handle
4146

4247
assert len(trace.get_annotation(key="ColdStart", value=True)) == 1
4348
assert len(trace.get_metadata(key=handler_metadata_key, namespace=TracerStack.SERVICE_NAME)) == 2
49+
assert len(trace.get_metadata(key=handler_metadata_key, namespace=TracerStack.SERVICE_NAME)) == 2
4450
assert len(trace.get_subsegment(name=handler_subsegment)) == 2
51+
assert len(trace.get_subsegment(name=method_subsegment)) == 2
4552

4653

47-
def test_sync_async_capture_are_visible(sync_async_fn_arn: str, sync_async_fn: str):
54+
def test_async_trace_is_visible(async_fn_arn: str, async_fn: str):
4855
# GIVEN
49-
sync_fn_name = sync_async_capture.get_todos.__name__
50-
sync_fn_name_subsegment = f"## {sync_fn_name}"
51-
sync_fn_name_metadata_key = f"{sync_fn_name} response"
52-
53-
async_fn_name = sync_async_capture.async_get_users.__name__
56+
async_fn_name = async_capture.async_get_users.__name__
5457
async_fn_name_subsegment = f"## {async_fn_name}"
5558
async_fn_name_metadata_key = f"{async_fn_name} response"
5659

57-
trace_query = data_builder.build_trace_default_query(function_name=sync_async_fn)
60+
trace_query = data_builder.build_trace_default_query(function_name=async_fn)
5861

5962
# WHEN
60-
_, execution_time = data_fetcher.get_lambda_response(lambda_arn=sync_async_fn_arn)
63+
_, execution_time = data_fetcher.get_lambda_response(lambda_arn=async_fn_arn)
6164

6265
# THEN
6366
trace = data_fetcher.get_traces(start_date=execution_time, filter_expression=trace_query)
6467

65-
assert len(trace.get_subsegment(name=sync_fn_name_subsegment)) == 1
66-
assert len(trace.get_metadata(key=sync_fn_name_metadata_key, namespace=TracerStack.SERVICE_NAME)) == 1
67-
6868
assert len(trace.get_subsegment(name=async_fn_name_subsegment)) == 1
6969
assert len(trace.get_metadata(key=async_fn_name_metadata_key, namespace=TracerStack.SERVICE_NAME)) == 1

0 commit comments

Comments
 (0)