Skip to content

Commit d965d9a

Browse files
michaelawyuplamut
michaelawyu
authored andcommitted
Add Snippet for Listing All Subscriptions in a Project [(#1169)](GoogleCloudPlatform/python-docs-samples#1169)
1 parent c56ffc9 commit d965d9a

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

samples/snippets/subscriber.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from google.cloud import pubsub_v1
2828

2929

30-
def list_subscriptions(project, topic_name):
30+
def list_subscriptions_in_topic(project, topic_name):
3131
"""Lists all subscriptions for a given topic."""
3232
subscriber = pubsub_v1.SubscriberClient()
3333
topic_path = subscriber.topic_path(project, topic_name)
@@ -36,6 +36,15 @@ def list_subscriptions(project, topic_name):
3636
print(subscription.name)
3737

3838

39+
def list_subscriptions_in_project(project):
40+
"""Lists all subscriptions in the current project."""
41+
subscriber = pubsub_v1.SubscriberClient()
42+
project_path = subscriber.project_path(project)
43+
44+
for subscription in subscriber.list_subscriptions(project_path):
45+
print(subscription.name)
46+
47+
3948
def create_subscription(project, topic_name, subscription_name):
4049
"""Create a new pull subscription on the given topic."""
4150
subscriber = pubsub_v1.SubscriberClient()
@@ -109,9 +118,12 @@ def callback(message):
109118
parser.add_argument('project', help='Your Google Cloud project ID')
110119

111120
subparsers = parser.add_subparsers(dest='command')
112-
list_parser = subparsers.add_parser(
113-
'list', help=list_subscriptions.__doc__)
114-
list_parser.add_argument('topic_name')
121+
list_in_topic_parser = subparsers.add_parser(
122+
'list_in_topic', help=list_subscriptions_in_topic.__doc__)
123+
list_in_topic_parser.add_argument('topic_name')
124+
125+
list_in_project_parser = subparsers.add_parser(
126+
'list_in_project', help=list_subscriptions_in_project.__doc__)
115127

116128
create_parser = subparsers.add_parser(
117129
'create', help=create_subscription.__doc__)
@@ -133,8 +145,10 @@ def callback(message):
133145

134146
args = parser.parse_args()
135147

136-
if args.command == 'list':
137-
list_subscriptions(args.project, args.topic_name)
148+
if args.command == 'list_in_topic':
149+
list_subscriptions_in_topic(args.project, args.topic_name)
150+
elif args.command == 'list_in_project':
151+
list_subscriptions_in_project(args.project)
138152
elif args.command == 'create':
139153
create_subscription(
140154
args.project, args.topic_name, args.subscription_name)

samples/snippets/subscriber_test.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,18 @@ def subscription(subscriber_client, topic):
6666
yield subscription_path
6767

6868

69-
def test_list(subscription, capsys):
69+
def test_list_in_topic(subscription, capsys):
7070
@eventually_consistent.call
7171
def _():
72-
subscriber.list_subscriptions(PROJECT, TOPIC)
72+
subscriber.list_subscriptions_in_topic(PROJECT, TOPIC)
73+
out, _ = capsys.readouterr()
74+
assert subscription in out
75+
76+
77+
def test_list_in_project(subscription, capsys):
78+
@eventually_consistent.call
79+
def _():
80+
subscriber.list_subscriptions_in_project(PROJECT)
7381
out, _ = capsys.readouterr()
7482
assert subscription in out
7583

0 commit comments

Comments
 (0)