File tree Expand file tree Collapse file tree 5 files changed +13
-15
lines changed
aws_lambda_powertools/utilities Expand file tree Collapse file tree 5 files changed +13
-15
lines changed Original file line number Diff line number Diff line change @@ -32,14 +32,14 @@ def key(self) -> str:
3232 return unquote_plus (self ["key" ])
3333
3434 @property
35- def size (self ) -> str :
36- """Object size"""
37- return self [ "size" ]
35+ def size (self ) -> Optional [ int ] :
36+ """Object size. Object deletion event doesn't contain size. """
37+ return self . get ( "size" )
3838
3939 @property
4040 def etag (self ) -> str :
41- """Object etag"""
42- return self [ "etag" ]
41+ """Object etag. Object deletion event doesn't contain etag; we default to empty string """
42+ return self . get ( "etag" , "" ) # type: ignore[return-value] # false positive
4343
4444 @property
4545 def version_id (self ) -> str :
@@ -178,8 +178,8 @@ def size(self) -> int:
178178
179179 @property
180180 def etag (self ) -> str :
181- """object eTag"""
182- return self ["s3" ]["object" ][ "eTag" ]
181+ """Object eTag. Object deletion event doesn't contain eTag; we default to empty string """
182+ return self ["s3" ]["object" ]. get ( "eTag" , "" )
183183
184184 @property
185185 def version_id (self ) -> Optional [str ]:
Original file line number Diff line number Diff line change @@ -61,7 +61,7 @@ class S3Message(BaseModel):
6161class S3EventNotificationObjectModel (BaseModel ):
6262 key : str
6363 size : Optional [NonNegativeFloat ] = None
64- etag : str
64+ etag : str = Field ( default = "" )
6565 version_id : str = Field (None , alias = "version-id" )
6666 sequencer : Optional [str ] = None
6767
Original file line number Diff line number Diff line change 1616 },
1717 "object" : {
1818 "key" : " IMG_m7fzo3.jpg" ,
19- "size" : 184662 ,
20- "etag" : " 4e68adba0abe2dc8653dc3354e14c01d" ,
2119 "sequencer" : " 006408CAD69598B05E"
2220 },
2321 "request-id" : " 0BH729840619AG5K" ,
2624 "reason" : " DeleteObject" ,
2725 "deletion-type" : " Delete Marker Created"
2826 }
29- }
27+ }
Original file line number Diff line number Diff line change @@ -26,10 +26,10 @@ def test_s3_eventbridge_notification_detail_parsed(raw_event: Dict):
2626 assert parsed_event .detail .deletion_type == raw_event ["detail" ].get ("deletion-type" )
2727 assert parsed_event .detail .destination_access_tier == raw_event ["detail" ].get ("destination-access-tier" )
2828 assert parsed_event .detail .destination_storage_class == raw_event ["detail" ].get ("destination-storage-class" )
29- assert parsed_event .detail .object .etag == raw_event ["detail" ]["object" ][ "etag" ]
29+ assert parsed_event .detail .object .etag == raw_event ["detail" ]["object" ]. get ( "etag" , "" )
3030 assert parsed_event .detail .object .key == raw_event ["detail" ]["object" ]["key" ]
3131 assert parsed_event .detail .object .sequencer == raw_event ["detail" ]["object" ]["sequencer" ]
32- assert parsed_event .detail .object .size == raw_event ["detail" ]["object" ][ "size" ]
32+ assert parsed_event .detail .object .size == raw_event ["detail" ]["object" ]. get ( "size" )
3333 assert parsed_event .detail .reason == raw_event ["detail" ].get ("reason" )
3434 assert parsed_event .detail .version == raw_event ["detail" ].get ("version" )
3535 assert parsed_event .detail .request_id == raw_event ["detail" ]["request-id" ]
Original file line number Diff line number Diff line change @@ -52,8 +52,8 @@ def test_s3_eventbridge_notification_object_deleted_event():
5252 assert model .detail .version == raw_event ["detail" ]["version" ]
5353 assert model .detail .bucket .name == raw_event ["detail" ]["bucket" ]["name" ]
5454 assert model .detail .object .key == raw_event ["detail" ]["object" ]["key" ]
55- assert model .detail .object .size == raw_event ["detail" ]["object" ][ "size" ]
56- assert model .detail .object .etag == raw_event ["detail" ]["object" ][ "etag" ]
55+ assert model .detail .object .size == raw_event ["detail" ]["object" ]. get ( "size" )
56+ assert model .detail .object .etag == raw_event ["detail" ]["object" ]. get ( "etag" , "" )
5757 assert model .detail .object .sequencer == raw_event ["detail" ]["object" ]["sequencer" ]
5858 assert model .detail .request_id == raw_event ["detail" ]["request-id" ]
5959 assert model .detail .requester == raw_event ["detail" ]["requester" ]
You can’t perform that action at this time.
0 commit comments