From 68cf3e8a1d7d6165d10b10c5c7898cf8193adb0a Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Thu, 17 Nov 2022 16:36:10 -0100 Subject: [PATCH] Events: delete_rule() with unknown name should fail silently (#5665) --- moto/events/models.py | 6 ++++-- tests/test_events/test_events.py | 9 +++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/moto/events/models.py b/moto/events/models.py index 5836da122..305c3de5b 100644 --- a/moto/events/models.py +++ b/moto/events/models.py @@ -1057,15 +1057,17 @@ class EventsBackend(BaseBackend): return rule - def delete_rule(self, name): + def delete_rule(self, name: str) -> None: rule = self.rules.get(name) + if not rule: + return if len(rule.targets) > 0: raise ValidationException("Rule can't be deleted since it has targets.") arn = rule.arn if self.tagger.has_tags(arn): self.tagger.delete_all_tags_for_resource(arn) - return self.rules.pop(name) is not None + self.rules.pop(name) def describe_rule(self, name): rule = self.rules.get(name) diff --git a/tests/test_events/test_events.py b/tests/test_events/test_events.py index b222abf1c..a5dda6e25 100644 --- a/tests/test_events/test_events.py +++ b/tests/test_events/test_events.py @@ -324,6 +324,15 @@ def test_delete_rule_with_targets(): ) +@mock_events +def test_delete_unknown_rule(): + client = boto3.client("events", "us-west-1") + resp = client.delete_rule(Name="unknown") + + # this fails silently - it just returns an empty 200. Verified against AWS. + resp["ResponseMetadata"].should.have.key("HTTPStatusCode").equals(200) + + @mock_events def test_list_targets_by_rule(): rule_name = get_random_rule()["Name"]