Skip to content

Commit 5304e5c

Browse files
authored
fix(parser): change ApproximateCreationDateTime field to datetime in DynamoDBStreamChangedRecordModel (#3049)
fix: promote ApproximateCreationDateTime to datetime
1 parent 0f2870f commit 5304e5c

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

aws_lambda_powertools/utilities/parser/models/dynamodb.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import date
1+
from datetime import datetime
22
from typing import Any, Dict, List, Optional, Type, Union
33

44
from pydantic import BaseModel
@@ -7,7 +7,7 @@
77

88

99
class DynamoDBStreamChangedRecordModel(BaseModel):
10-
ApproximateCreationDateTime: Optional[date] = None
10+
ApproximateCreationDateTime: Optional[datetime] = None
1111
Keys: Dict[str, Dict[str, Any]]
1212
NewImage: Optional[Union[Dict[str, Any], Type[BaseModel], BaseModel]] = None
1313
OldImage: Optional[Union[Dict[str, Any], Type[BaseModel], BaseModel]] = None

tests/events/dynamoStreamEvent.json

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"eventID": "1",
55
"eventVersion": "1.0",
66
"dynamodb": {
7+
"ApproximateCreationDateTime": 1693997155.0,
78
"Keys": {
89
"Id": {
910
"N": "101"

tests/unit/data_classes/test_dynamo_db_stream_event.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_dynamodb_stream_trigger_event():
3333
assert record.user_identity is None
3434
dynamodb = record.dynamodb
3535
assert dynamodb is not None
36-
assert dynamodb.approximate_creation_date_time is None
36+
assert dynamodb.approximate_creation_date_time == record_raw["dynamodb"]["ApproximateCreationDateTime"]
3737
keys = dynamodb.keys
3838
assert keys is not None
3939
assert keys["Id"] == decimal_context.create_decimal(101)

tests/unit/parser/test_dynamodb.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ def test_dynamo_db_stream_trigger_event_no_envelope():
5555
dynamodb = record.dynamodb
5656
raw_dynamodb = raw_record["dynamodb"]
5757
assert dynamodb is not None
58-
assert dynamodb.ApproximateCreationDateTime is None
58+
assert dynamodb.ApproximateCreationDateTime is not None
59+
assert dynamodb.ApproximateCreationDateTime.timestamp() == raw_dynamodb["ApproximateCreationDateTime"]
5960
assert dynamodb.OldImage is None
6061
assert dynamodb.SequenceNumber == raw_dynamodb["SequenceNumber"]
6162
assert dynamodb.SizeBytes == raw_dynamodb["SizeBytes"]

0 commit comments

Comments
 (0)