@@ -61,6 +61,86 @@ def test_w_explicit_connection_w_paging(self):
61
61
{'pageSize' : SIZE , 'pageToken' : TOKEN1 })
62
62
63
63
64
+ class Test_list_subscriptions (unittest2 .TestCase ):
65
+
66
+ def _callFUT (self , * args , ** kw ):
67
+ from gcloud .pubsub .api import list_subscriptions
68
+ return list_subscriptions (* args , ** kw )
69
+
70
+ def test_w_explicit_connection_no_paging (self ):
71
+ PROJECT = 'PROJECT'
72
+ SUB_NAME = 'topic_name'
73
+ SUB_PATH = 'projects/%s/subscriptions/%s' % (PROJECT , SUB_NAME )
74
+ TOPIC_NAME = 'topic_name'
75
+ TOPIC_PATH = 'projects/%s/topics/%s' % (PROJECT , TOPIC_NAME )
76
+ TOKEN = 'TOKEN'
77
+ returned = {'subscriptions' : [{'name' : SUB_PATH , 'topic' : TOPIC_PATH }],
78
+ 'nextPageToken' : TOKEN }
79
+ conn = _Connection (returned )
80
+ response = self ._callFUT (project = PROJECT , connection = conn )
81
+ subscriptions = response ['subscriptions' ]
82
+ self .assertEqual (len (subscriptions ), 1 )
83
+ self .assertEqual (subscriptions [0 ],
84
+ {'name' : SUB_PATH , 'topic' : TOPIC_PATH })
85
+ self .assertEqual (response ['nextPageToken' ], TOKEN )
86
+ self .assertEqual (len (conn ._requested ), 1 )
87
+ req = conn ._requested [0 ]
88
+ self .assertEqual (req ['method' ], 'GET' )
89
+ self .assertEqual (req ['path' ], '/projects/%s/subscriptions' % PROJECT )
90
+ self .assertEqual (req ['query_params' ], {})
91
+
92
+ def test_w_explicit_connection_w_paging (self ):
93
+ PROJECT = 'PROJECT'
94
+ SUB_NAME = 'topic_name'
95
+ SUB_PATH = 'projects/%s/subscriptions/%s' % (PROJECT , SUB_NAME )
96
+ TOPIC_NAME = 'topic_name'
97
+ TOPIC_PATH = 'projects/%s/topics/%s' % (PROJECT , TOPIC_NAME )
98
+ TOKEN1 = 'TOKEN1'
99
+ TOKEN2 = 'TOKEN2'
100
+ SIZE = 1
101
+ returned = {'subscriptions' : [{'name' : SUB_PATH , 'topic' : TOPIC_PATH }],
102
+ 'nextPageToken' : TOKEN2 }
103
+ conn = _Connection (returned )
104
+ response = self ._callFUT (SIZE , TOKEN1 ,
105
+ project = PROJECT , connection = conn )
106
+ subscriptions = response ['subscriptions' ]
107
+ self .assertEqual (len (subscriptions ), 1 )
108
+ self .assertEqual (subscriptions [0 ],
109
+ {'name' : SUB_PATH , 'topic' : TOPIC_PATH })
110
+ self .assertEqual (response ['nextPageToken' ], TOKEN2 )
111
+ self .assertEqual (len (conn ._requested ), 1 )
112
+ req = conn ._requested [0 ]
113
+ self .assertEqual (req ['method' ], 'GET' )
114
+ self .assertEqual (req ['path' ], '/projects/%s/subscriptions' % PROJECT )
115
+ self .assertEqual (req ['query_params' ],
116
+ {'pageSize' : SIZE , 'pageToken' : TOKEN1 })
117
+
118
+ def test_w_topic_name (self ):
119
+ PROJECT = 'PROJECT'
120
+ SUB_NAME = 'topic_name'
121
+ SUB_PATH = 'projects/%s/subscriptions/%s' % (PROJECT , SUB_NAME )
122
+ TOPIC_NAME = 'topic_name'
123
+ TOPIC_PATH = 'projects/%s/topics/%s' % (PROJECT , TOPIC_NAME )
124
+ TOKEN = 'TOKEN'
125
+ returned = {'subscriptions' : [{'name' : SUB_PATH , 'topic' : TOPIC_PATH }],
126
+ 'nextPageToken' : TOKEN }
127
+ conn = _Connection (returned )
128
+ response = self ._callFUT (topic_name = TOPIC_NAME ,
129
+ project = PROJECT , connection = conn )
130
+ subscriptions = response ['subscriptions' ]
131
+ self .assertEqual (len (subscriptions ), 1 )
132
+ self .assertEqual (subscriptions [0 ],
133
+ {'name' : SUB_PATH , 'topic' : TOPIC_PATH })
134
+ self .assertEqual (response ['nextPageToken' ], TOKEN )
135
+ self .assertEqual (len (conn ._requested ), 1 )
136
+ req = conn ._requested [0 ]
137
+ self .assertEqual (req ['method' ], 'GET' )
138
+ self .assertEqual (req ['path' ],
139
+ '/projects/%s/topics/%s/subscriptions'
140
+ % (PROJECT , TOPIC_NAME ))
141
+ self .assertEqual (req ['query_params' ], {})
142
+
143
+
64
144
class _Connection (object ):
65
145
66
146
def __init__ (self , * responses ):
0 commit comments