Events: delete_rule() with unknown name should fail silently (#5665)

This commit is contained in:
Bert Blommers 2022-11-17 16:36:10 -01:00 committed by GitHub
parent 2c755c8c91
commit 68cf3e8a1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -1057,15 +1057,17 @@ class EventsBackend(BaseBackend):
return rule return rule
def delete_rule(self, name): def delete_rule(self, name: str) -> None:
rule = self.rules.get(name) rule = self.rules.get(name)
if not rule:
return
if len(rule.targets) > 0: if len(rule.targets) > 0:
raise ValidationException("Rule can't be deleted since it has targets.") raise ValidationException("Rule can't be deleted since it has targets.")
arn = rule.arn arn = rule.arn
if self.tagger.has_tags(arn): if self.tagger.has_tags(arn):
self.tagger.delete_all_tags_for_resource(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): def describe_rule(self, name):
rule = self.rules.get(name) rule = self.rules.get(name)

View File

@ -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 @mock_events
def test_list_targets_by_rule(): def test_list_targets_by_rule():
rule_name = get_random_rule()["Name"] rule_name = get_random_rule()["Name"]