@@ -673,15 +673,17 @@ def verify_message_content(message, original_event_id):
673
673
)
674
674
675
675
@markers .aws .validated
676
- def test_put_events_with_iam_permission_failure (
676
+ def test_put_events_with_target_delivery_failure (
677
677
self , events_put_rule , sqs_create_queue , sqs_get_queue_arn , aws_client , snapshot , clean_up
678
678
):
679
- """Test that put_events returns successful EventId even when target permissions are missing,
680
- but the message is not delivered to the target."""
681
- # Create SQS queue without EventBridge permissions
679
+ """Test that put_events returns successful EventId even when target delivery fails due to non-existent queue."""
680
+ # Create a queue and get its ARN
682
681
queue_url = sqs_create_queue ()
683
682
queue_arn = sqs_get_queue_arn (queue_url )
684
683
684
+ # Delete the queue to simulate a failure scenario
685
+ aws_client .sqs .delete_queue (QueueUrl = queue_url )
686
+
685
687
rule_name = f"test-rule-{ short_uid ()} "
686
688
687
689
snapshot .add_transformers_list (
@@ -693,45 +695,38 @@ def test_put_events_with_iam_permission_failure(
693
695
]
694
696
)
695
697
696
- # Create rule
697
698
events_put_rule (
698
699
Name = rule_name ,
699
700
EventPattern = json .dumps (TEST_EVENT_PATTERN_NO_DETAIL ),
700
701
)
701
702
702
- # Add target without proper permissions
703
703
target_id = f"test-target-{ short_uid ()} "
704
- target_response = aws_client .events .put_targets (
704
+ aws_client .events .put_targets (
705
705
Rule = rule_name ,
706
706
Targets = [
707
707
{"Id" : target_id , "Arn" : queue_arn },
708
708
],
709
709
)
710
710
711
- assert (
712
- target_response ["FailedEntryCount" ] == 0
713
- ), f"Failed to add targets: { target_response .get ('FailedEntries' , [])} "
714
-
715
- # Put event that should trigger the rule
716
711
test_event = {
717
712
"Source" : TEST_EVENT_PATTERN_NO_DETAIL ["source" ][0 ],
718
713
"DetailType" : TEST_EVENT_PATTERN_NO_DETAIL ["detail-type" ][0 ],
719
714
"Detail" : json .dumps (EVENT_DETAIL ),
720
715
}
721
716
722
- event_response = aws_client .events .put_events (Entries = [test_event ])
723
- snapshot .match ("put-events-response" , event_response )
717
+ response = aws_client .events .put_events (Entries = [test_event ])
718
+ snapshot .match ("put-events-response" , response )
724
719
725
- # Verify response matches expected structure
726
- assert len (event_response ["Entries" ]) == 1
727
- assert "EventId" in event_response ["Entries" ][0 ]
728
- assert event_response ["FailedEntryCount" ] == 0
720
+ assert len (response ["Entries" ]) == 1
721
+ assert "EventId" in response ["Entries" ][0 ]
722
+ assert response ["FailedEntryCount" ] == 0
729
723
724
+ new_queue_url = sqs_create_queue ()
730
725
messages = aws_client .sqs .receive_message (
731
- QueueUrl = queue_url , MaxNumberOfMessages = 1 , WaitTimeSeconds = 1
726
+ QueueUrl = new_queue_url , MaxNumberOfMessages = 1 , WaitTimeSeconds = 1
732
727
).get ("Messages" , [])
733
728
734
- assert len (messages ) == 0 , "Expected no messages to be delivered due to missing permissions "
729
+ assert len (messages ) == 0 , "No messages should be delivered when queue doesn't exist "
735
730
736
731
737
732
class TestEventBus :
0 commit comments