diff --git a/aws_lambda_powertools/utilities/parser/models/dynamodb.py b/aws_lambda_powertools/utilities/parser/models/dynamodb.py index 679952a7181..4f2de87fadb 100644 --- a/aws_lambda_powertools/utilities/parser/models/dynamodb.py +++ b/aws_lambda_powertools/utilities/parser/models/dynamodb.py @@ -1,4 +1,4 @@ -from datetime import date +from datetime import datetime from typing import Any, Dict, List, Optional, Type, Union from pydantic import BaseModel @@ -7,7 +7,7 @@ class DynamoDBStreamChangedRecordModel(BaseModel): - ApproximateCreationDateTime: Optional[date] = None + ApproximateCreationDateTime: Optional[datetime] = None Keys: Dict[str, Dict[str, Any]] NewImage: Optional[Union[Dict[str, Any], Type[BaseModel], BaseModel]] = None OldImage: Optional[Union[Dict[str, Any], Type[BaseModel], BaseModel]] = None diff --git a/tests/events/dynamoStreamEvent.json b/tests/events/dynamoStreamEvent.json index 12c535b005e..16009a7a956 100644 --- a/tests/events/dynamoStreamEvent.json +++ b/tests/events/dynamoStreamEvent.json @@ -4,6 +4,7 @@ "eventID": "1", "eventVersion": "1.0", "dynamodb": { + "ApproximateCreationDateTime": 1693997155.0, "Keys": { "Id": { "N": "101" diff --git a/tests/unit/data_classes/test_dynamo_db_stream_event.py b/tests/unit/data_classes/test_dynamo_db_stream_event.py index 798a24f468b..f7672abd69b 100644 --- a/tests/unit/data_classes/test_dynamo_db_stream_event.py +++ b/tests/unit/data_classes/test_dynamo_db_stream_event.py @@ -33,7 +33,7 @@ def test_dynamodb_stream_trigger_event(): assert record.user_identity is None dynamodb = record.dynamodb assert dynamodb is not None - assert dynamodb.approximate_creation_date_time is None + assert dynamodb.approximate_creation_date_time == record_raw["dynamodb"]["ApproximateCreationDateTime"] keys = dynamodb.keys assert keys is not None assert keys["Id"] == decimal_context.create_decimal(101) diff --git a/tests/unit/parser/test_dynamodb.py b/tests/unit/parser/test_dynamodb.py index 57bd2be5f0a..abbcd152d6b 100644 --- a/tests/unit/parser/test_dynamodb.py +++ b/tests/unit/parser/test_dynamodb.py @@ -55,7 +55,8 @@ def test_dynamo_db_stream_trigger_event_no_envelope(): dynamodb = record.dynamodb raw_dynamodb = raw_record["dynamodb"] assert dynamodb is not None - assert dynamodb.ApproximateCreationDateTime is None + assert dynamodb.ApproximateCreationDateTime is not None + assert dynamodb.ApproximateCreationDateTime.timestamp() == raw_dynamodb["ApproximateCreationDateTime"] assert dynamodb.OldImage is None assert dynamodb.SequenceNumber == raw_dynamodb["SequenceNumber"] assert dynamodb.SizeBytes == raw_dynamodb["SizeBytes"]