Skip to content

Commit e8041b1

Browse files
committed
chore(tests): add object restore completed test without envelope
1 parent ce55207 commit e8041b1

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/functional/parser/test_s3.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,11 @@ def test_s3_eventbridge_notification_object_restore_completed_event():
155155
handle_s3_eventbridge_object_restore_completed(event_dict, LambdaContext())
156156

157157

158+
def test_s3_eventbridge_notification_object_restore_completed_event_no_envelope():
159+
event_dict = load_event("s3EventBridgeNotificationObjectRestoreCompletedEvent.json")
160+
handle_s3_eventbridge_object_restore_completed_no_envelope(event_dict, LambdaContext())
161+
162+
158163
@event_parser(model=S3Model)
159164
def handle_s3_delete_object(event: S3Model, _: LambdaContext):
160165
records = list(event.Records)
@@ -415,3 +420,35 @@ def handle_s3_eventbridge_object_restore_completed(event: S3EventNotificationEve
415420
assert source_ip_address == event.source_ip_address
416421
assert source_storage_class == event.source_storage_class
417422
assert version == event.version
423+
424+
425+
@event_parser(model=S3EventNotificationEventBridgeModel)
426+
def handle_s3_eventbridge_object_restore_completed_no_envelope(
427+
event: S3EventNotificationEventBridgeModel, _: LambdaContext
428+
):
429+
"""
430+
Tests that the `S3EventNotificationEventBridgeModel` parses events from
431+
https://docs.aws.amazon.com/AmazonS3/latest/userguide/ev-events.html
432+
"""
433+
434+
raw_event = load_event("s3EventBridgeNotificationObjectRestoreCompletedEvent.json")
435+
436+
assert event.version == raw_event["version"]
437+
assert event.id == raw_event["id"]
438+
assert event.detail_type == raw_event["detail-type"]
439+
assert event.source == raw_event["source"]
440+
assert event.account == raw_event["account"]
441+
assert event.time == datetime.fromisoformat(raw_event["time"].replace("Z", "+00:00"))
442+
assert event.region == raw_event["region"]
443+
assert event.resources == raw_event["resources"]
444+
445+
assert event.detail.version == raw_event["detail"]["version"]
446+
assert event.detail.bucket.name == raw_event["detail"]["bucket"]["name"]
447+
assert event.detail.object.key == raw_event["detail"]["object"]["key"]
448+
assert event.detail.object.size == raw_event["detail"]["object"]["size"]
449+
assert event.detail.object.etag == raw_event["detail"]["object"]["etag"]
450+
assert event.detail.object.sequencer == raw_event["detail"]["object"]["sequencer"]
451+
assert event.detail.request_id == raw_event["detail"]["request-id"]
452+
assert event.detail.requester == raw_event["detail"]["requester"]
453+
assert event.detail.restore_expiry_time == raw_event["detail"]["restore-expiry-time"]
454+
assert event.detail.source_storage_class == raw_event["detail"]["source-storage-class"]

0 commit comments

Comments
 (0)