|
1 | 1 | import pytest
|
2 | 2 |
|
3 | 3 | from aws_lambda_powertools.utilities.parser import ValidationError, envelopes, parse
|
| 4 | +from aws_lambda_powertools.utilities.parser.models import SqsModel |
4 | 5 | from tests.functional.utils import load_event
|
5 | 6 | from tests.functional.validator.conftest import sqs_event # noqa: F401
|
6 | 7 | from tests.unit.parser.schemas import MyAdvancedSqsBusiness, MySqsBusiness
|
@@ -85,3 +86,38 @@ def test_handle_sqs_trigger_event_no_envelope():
|
85 | 86 | assert test_attr.stringValue == message_attributes_raw["stringValue"]
|
86 | 87 | assert test_attr.binaryValue == message_attributes_raw["binaryValue"]
|
87 | 88 | assert test_attr.dataType == message_attributes_raw["dataType"]
|
| 89 | + |
| 90 | + |
| 91 | +def test_sqs_dlq_trigger_event(): |
| 92 | + raw_event = load_event("sqsDlqTriggerEvent.json") |
| 93 | + parsed_event = SqsModel(**raw_event) |
| 94 | + |
| 95 | + records = parsed_event.Records |
| 96 | + record = records[0] |
| 97 | + raw_record = raw_event["Records"][0] |
| 98 | + assert len(records) == 1 |
| 99 | + |
| 100 | + assert record.messageId == raw_record["messageId"] |
| 101 | + assert record.receiptHandle == raw_record["receiptHandle"] |
| 102 | + assert record.body == raw_record["body"] |
| 103 | + assert record.eventSource == raw_record["eventSource"] |
| 104 | + assert record.eventSourceARN == raw_record["eventSourceARN"] |
| 105 | + assert record.awsRegion == raw_record["awsRegion"] |
| 106 | + assert record.md5OfBody == raw_record["md5OfBody"] |
| 107 | + |
| 108 | + attributes = record.attributes |
| 109 | + assert attributes.AWSTraceHeader is None |
| 110 | + assert attributes.ApproximateReceiveCount == raw_record["attributes"]["ApproximateReceiveCount"] |
| 111 | + assert attributes.SequenceNumber is None |
| 112 | + assert attributes.MessageGroupId is None |
| 113 | + assert attributes.MessageDeduplicationId is None |
| 114 | + assert attributes.SenderId == raw_record["attributes"]["SenderId"] |
| 115 | + convert_time = int(round(attributes.ApproximateFirstReceiveTimestamp.timestamp() * 1000)) |
| 116 | + assert convert_time == int(raw_record["attributes"]["ApproximateFirstReceiveTimestamp"]) |
| 117 | + convert_time = int(round(attributes.SentTimestamp.timestamp() * 1000)) |
| 118 | + assert convert_time == int(raw_record["attributes"]["SentTimestamp"]) |
| 119 | + |
| 120 | + assert ( |
| 121 | + attributes.DeadLetterQueueSourceArn |
| 122 | + == raw_record["attributes"]["DeadLetterQueueSourceArn"] |
| 123 | + ) |
0 commit comments