|
29 | 29 | extract_host_from_cloudtrails, |
30 | 30 | extract_host_from_guardduty, |
31 | 31 | extract_host_from_route53, |
| 32 | + extract_trace_payload, |
32 | 33 | enrich, |
33 | 34 | transform, |
34 | 35 | split, |
@@ -198,5 +199,34 @@ def test_datadog_forwarder(self, mock_get_s3_cache, mock_forward_metrics): |
198 | 199 | del os.environ["DD_FETCH_LAMBDA_TAGS"] |
199 | 200 |
|
200 | 201 |
|
| 202 | +class TestLambdaFunctionExtractTracePayload(unittest.TestCase): |
| 203 | + def test_extract_trace_payload_none_no_trace(self): |
| 204 | + message_json = """{ |
| 205 | + "key": "value" |
| 206 | + }""" |
| 207 | + self.assertEqual(extract_trace_payload({"message": message_json}), None) |
| 208 | + |
| 209 | + def test_extract_trace_payload_none_exception(self): |
| 210 | + message_json = """{ |
| 211 | + "invalid_json" |
| 212 | + }""" |
| 213 | + self.assertEqual(extract_trace_payload({"message": message_json}), None) |
| 214 | + |
| 215 | + def test_extract_trace_payload_unrelated_datadog_trace(self): |
| 216 | + message_json = """{"traces":["I am a trace"]}""" |
| 217 | + self.assertEqual(extract_trace_payload({"message": message_json}), None) |
| 218 | + |
| 219 | + def test_extract_trace_payload_valid_trace(self): |
| 220 | + message_json = """{"traces":[[{"trace_id":1234}]]}""" |
| 221 | + tags_json = """["key0:value", "key1:value1"]""" |
| 222 | + item = { |
| 223 | + "message": '{"traces":[[{"trace_id":1234}]]}', |
| 224 | + "tags": '["key0:value", "key1:value1"]', |
| 225 | + } |
| 226 | + self.assertEqual( |
| 227 | + extract_trace_payload({"message": message_json, "ddtags": tags_json}), item |
| 228 | + ) |
| 229 | + |
| 230 | + |
201 | 231 | if __name__ == "__main__": |
202 | 232 | unittest.main() |
0 commit comments