Skip to content

Commit a57c9f1

Browse files
committed
Add test for creating non-default subscriptions
1 parent 7b51a19 commit a57c9f1

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

pubsub/tests/system.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,42 @@ def test_subscribe_to_messages_async_callbacks(
184184
future.cancel()
185185

186186

187+
def test_creating_subscriptions_with_non_default_settings(
188+
publisher, subscriber, project, topic_path, subscription_path, cleanup
189+
):
190+
# Make sure the topic and subscription get deleted.
191+
cleanup.append((publisher.delete_topic, topic_path))
192+
cleanup.append((subscriber.delete_subscription, subscription_path))
193+
194+
# create a topic and a subscription, customize the latter's policy
195+
publisher.create_topic(topic_path)
196+
197+
msg_retention_duration = {"seconds": 911}
198+
expiration_policy = {"ttl": {"seconds": 90210}}
199+
new_subscription = subscriber.create_subscription(
200+
subscription_path,
201+
topic_path,
202+
ack_deadline_seconds=30,
203+
retain_acked_messages=True,
204+
message_retention_duration=msg_retention_duration,
205+
expiration_policy=expiration_policy,
206+
)
207+
208+
# fetch the subscription and check its settings
209+
project_path = subscriber.project_path(project)
210+
subscriptions = subscriber.list_subscriptions(project_path)
211+
212+
subscriptions = [sub for sub in subscriptions if sub.topic == topic_path]
213+
assert len(subscriptions) == 1
214+
subscription = subscriptions[0]
215+
216+
assert subscription == new_subscription
217+
assert subscription.ack_deadline_seconds == 30
218+
assert subscription.retain_acked_messages
219+
assert subscription.message_retention_duration.seconds == 911
220+
assert subscription.expiration_policy.ttl.seconds == 90210
221+
222+
187223
def test_listing_project_topics(publisher, project, cleanup):
188224
topic_paths = [
189225
publisher.topic_path(project, "topic-{}".format(i) + unique_resource_id("."))

0 commit comments

Comments
 (0)