fix: deleting non-existent topic shouldn't raise KeyError (#3285)

This commit is contained in:
Daniel Okey-Okoro 2020-09-10 00:32:41 -07:00 committed by GitHub
parent 16d5d2df28
commit c321ad46b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 1 deletions

View File

@ -426,7 +426,10 @@ class SNSBackend(BaseBackend):
return self._get_values_nexttoken(self.topics, next_token)
def delete_topic(self, arn):
self.topics.pop(arn)
try:
self.topics.pop(arn)
except KeyError:
raise SNSNotFoundError("Topic with arn {0} not found".format(arn))
def get_topic(self, arn):
try:

View File

@ -32,6 +32,12 @@ def test_create_and_delete_topic():
topics.should.have.length_of(0)
@mock_sns_deprecated
def test_delete_non_existent_topic():
conn = boto.connect_sns()
conn.delete_topic.when.called_with("a-fake-arn").should.throw(BotoServerError)
@mock_sns_deprecated
def test_get_missing_topic():
conn = boto.connect_sns()

View File

@ -35,6 +35,15 @@ def test_create_and_delete_topic():
topics.should.have.length_of(0)
@mock_sns
def test_delete_non_existent_topic():
conn = boto3.client("sns", region_name="us-east-1")
conn.delete_topic.when.called_with(
TopicArn="arn:aws:sns:us-east-1:123456789012:fake-topic"
).should.throw(conn.exceptions.NotFoundException)
@mock_sns
def test_create_topic_with_attributes():
conn = boto3.client("sns", region_name="us-east-1")