Skip to content

Commit

Permalink
fix(parser): change ApproximateCreationDateTime field to datetime in …
Browse files Browse the repository at this point in the history
…DynamoDBStreamChangedRecordModel (#3049)

fix: promote ApproximateCreationDateTime to datetime
waveFrontSet authored Sep 6, 2023
1 parent 0f2870f commit 5304e5c
Showing 4 changed files with 6 additions and 4 deletions.
4 changes: 2 additions & 2 deletions aws_lambda_powertools/utilities/parser/models/dynamodb.py
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions tests/events/dynamoStreamEvent.json
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
"eventID": "1",
"eventVersion": "1.0",
"dynamodb": {
"ApproximateCreationDateTime": 1693997155.0,
"Keys": {
"Id": {
"N": "101"
2 changes: 1 addition & 1 deletion tests/unit/data_classes/test_dynamo_db_stream_event.py
Original file line number Diff line number Diff line change
@@ -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)
3 changes: 2 additions & 1 deletion tests/unit/parser/test_dynamodb.py
Original file line number Diff line number Diff line change
@@ -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"]

0 comments on commit 5304e5c

Please sign in to comment.