@@ -61,6 +61,86 @@ def test_w_explicit_connection_w_paging(self):
6161 {'pageSize' : SIZE , 'pageToken' : TOKEN1 })
6262
6363
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+
64144class _Connection (object ):
65145
66146 def __init__ (self , * responses ):
0 commit comments