Skip to content

Commit 804c406

Browse files
Refactored code, added more unit tests
1 parent 0b6523a commit 804c406

File tree

5 files changed

+48
-10
lines changed

5 files changed

+48
-10
lines changed

datadog_lambda/tracing.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,20 @@ def extract_context_from_http_event_or_context(
209209
return context
210210

211211

212+
def extract_context_from_request_header_or_context(event, lambda_context, event_source):
213+
request = event.get("request")
214+
if isinstance(request, (set, dict)) and "headers" in request:
215+
context = extract_context_from_http_event_or_context(
216+
request,
217+
lambda_context,
218+
event_source,
219+
decode_authorizer_context=False,
220+
)
221+
else:
222+
context = extract_context_from_lambda_context(lambda_context)
223+
return context
224+
225+
212226
def create_sns_event(message):
213227
return {
214228
"Records": [
@@ -628,16 +642,9 @@ def extract_dd_trace_context(
628642
if extractor is not None:
629643
context = extract_context_custom_extractor(extractor, event, lambda_context)
630644
elif isinstance(event, (set, dict)) and "request" in event:
631-
request = event.get("request")
632-
if isinstance(request, (set, dict)) and "headers" in request:
633-
context = extract_context_from_http_event_or_context(
634-
request,
635-
lambda_context,
636-
event_source,
637-
decode_authorizer_context=False,
638-
)
639-
else:
640-
context = extract_context_from_lambda_context(lambda_context)
645+
context = extract_context_from_request_header_or_context(
646+
event, lambda_context, event_source
647+
)
641648
elif isinstance(event, (set, dict)) and "headers" in event:
642649
context = extract_context_from_http_event_or_context(
643650
event, lambda_context, event_source, decode_authorizer_context

env/pyvenv.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
home = /Users/rithika.narayan/.pyenv/versions/3.10.13/bin
2+
include-system-site-packages = false
3+
version = 3.10.13
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"identity": "None",
3+
"info": {
4+
"fieldName": "getItems",
5+
"parentTypeName": "Query",
6+
"selectionSetGraphQL": "{\n id\n}",
7+
"selectionSetList":["id"]
8+
},
9+
"prev": "None",
10+
"request": {
11+
"domainName": "None"
12+
},
13+
"source": "None"
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"identity": "None",
3+
"info": {
4+
"fieldName": "getItems",
5+
"parentTypeName": "Query",
6+
"selectionSetGraphQL": "{\n id\n}",
7+
"selectionSetList":["id"]
8+
},
9+
"prev": "None",
10+
"request": "hello",
11+
"source": "None"
12+
}

tests/test_tracing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ def _wrap(*args, **kwargs):
187187
sampling_priority=1,
188188
),
189189
),
190+
("rum-appsync-no-headers", None),
191+
("rum-appsync-request-not-dict", None),
190192
("s3", None),
191193
(
192194
"sns-b64-msg-attribute",

0 commit comments

Comments
 (0)