Merge pull request #2610 from gruebel/fix-sns-get-subscription-attributes
Add missing attributes to SNS subscription
This commit is contained in:
commit
91983b4823
@ -439,11 +439,18 @@ class SNSBackend(BaseBackend):
|
|||||||
subscription = Subscription(topic, endpoint, protocol)
|
subscription = Subscription(topic, endpoint, protocol)
|
||||||
attributes = {
|
attributes = {
|
||||||
"PendingConfirmation": "false",
|
"PendingConfirmation": "false",
|
||||||
|
"ConfirmationWasAuthenticated": "true",
|
||||||
"Endpoint": endpoint,
|
"Endpoint": endpoint,
|
||||||
"TopicArn": topic_arn,
|
"TopicArn": topic_arn,
|
||||||
"Protocol": protocol,
|
"Protocol": protocol,
|
||||||
"SubscriptionArn": subscription.arn,
|
"SubscriptionArn": subscription.arn,
|
||||||
|
"Owner": DEFAULT_ACCOUNT_ID,
|
||||||
|
"RawMessageDelivery": "false",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if protocol in ["http", "https"]:
|
||||||
|
attributes["EffectiveDeliveryPolicy"] = topic.effective_delivery_policy
|
||||||
|
|
||||||
subscription.attributes = attributes
|
subscription.attributes = attributes
|
||||||
self.subscriptions[subscription.arn] = subscription
|
self.subscriptions[subscription.arn] = subscription
|
||||||
return subscription
|
return subscription
|
||||||
@ -703,8 +710,6 @@ for region in Session().get_available_regions("sns"):
|
|||||||
|
|
||||||
|
|
||||||
DEFAULT_EFFECTIVE_DELIVERY_POLICY = {
|
DEFAULT_EFFECTIVE_DELIVERY_POLICY = {
|
||||||
"http": {
|
|
||||||
"disableSubscriptionOverrides": False,
|
|
||||||
"defaultHealthyRetryPolicy": {
|
"defaultHealthyRetryPolicy": {
|
||||||
"numNoDelayRetries": 0,
|
"numNoDelayRetries": 0,
|
||||||
"numMinDelayRetries": 0,
|
"numMinDelayRetries": 0,
|
||||||
@ -714,7 +719,9 @@ DEFAULT_EFFECTIVE_DELIVERY_POLICY = {
|
|||||||
"numRetries": 3,
|
"numRetries": 3,
|
||||||
"backoffFunction": "linear",
|
"backoffFunction": "linear",
|
||||||
},
|
},
|
||||||
}
|
"sicklyRetryPolicy": None,
|
||||||
|
"throttlePolicy": None,
|
||||||
|
"guaranteed": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,11 @@ from botocore.exceptions import ClientError
|
|||||||
from nose.tools import assert_raises
|
from nose.tools import assert_raises
|
||||||
|
|
||||||
from moto import mock_sns
|
from moto import mock_sns
|
||||||
from moto.sns.models import DEFAULT_PAGE_SIZE
|
from moto.sns.models import (
|
||||||
|
DEFAULT_PAGE_SIZE,
|
||||||
|
DEFAULT_EFFECTIVE_DELIVERY_POLICY,
|
||||||
|
DEFAULT_ACCOUNT_ID,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@mock_sns
|
@mock_sns
|
||||||
@ -195,21 +199,23 @@ def test_subscribe_attributes():
|
|||||||
|
|
||||||
resp = client.subscribe(TopicArn=arn, Protocol="http", Endpoint="http://test.com")
|
resp = client.subscribe(TopicArn=arn, Protocol="http", Endpoint="http://test.com")
|
||||||
|
|
||||||
attributes = client.get_subscription_attributes(
|
response = client.get_subscription_attributes(
|
||||||
SubscriptionArn=resp["SubscriptionArn"]
|
SubscriptionArn=resp["SubscriptionArn"]
|
||||||
)
|
)
|
||||||
|
|
||||||
attributes.should.contain("Attributes")
|
response.should.contain("Attributes")
|
||||||
attributes["Attributes"].should.contain("PendingConfirmation")
|
attributes = response["Attributes"]
|
||||||
attributes["Attributes"]["PendingConfirmation"].should.equal("false")
|
attributes["PendingConfirmation"].should.equal("false")
|
||||||
attributes["Attributes"].should.contain("Endpoint")
|
attributes["ConfirmationWasAuthenticated"].should.equal("true")
|
||||||
attributes["Attributes"]["Endpoint"].should.equal("http://test.com")
|
attributes["Endpoint"].should.equal("http://test.com")
|
||||||
attributes["Attributes"].should.contain("TopicArn")
|
attributes["TopicArn"].should.equal(arn)
|
||||||
attributes["Attributes"]["TopicArn"].should.equal(arn)
|
attributes["Protocol"].should.equal("http")
|
||||||
attributes["Attributes"].should.contain("Protocol")
|
attributes["SubscriptionArn"].should.equal(resp["SubscriptionArn"])
|
||||||
attributes["Attributes"]["Protocol"].should.equal("http")
|
attributes["Owner"].should.equal(str(DEFAULT_ACCOUNT_ID))
|
||||||
attributes["Attributes"].should.contain("SubscriptionArn")
|
attributes["RawMessageDelivery"].should.equal("false")
|
||||||
attributes["Attributes"]["SubscriptionArn"].should.equal(resp["SubscriptionArn"])
|
json.loads(attributes["EffectiveDeliveryPolicy"]).should.equal(
|
||||||
|
DEFAULT_EFFECTIVE_DELIVERY_POLICY
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@mock_sns
|
@mock_sns
|
||||||
|
Loading…
Reference in New Issue
Block a user