@@ -262,5 +262,57 @@ def getresponse(self):
262262 'someSite1' : ['someId' ], 'someSite' : ['someId' ]})
263263
264264
265+ class TestListSubscriptions (unittest .TestCase ):
266+
267+ def testListSubscriptions (self ):
268+
269+ class MockResponseStringIo :
270+ def __init__ (self , * args , ** kwargs ):
271+ self .response = None , 404
272+
273+ def request (self , * args , ** kwargs ):
274+ self .response = {"phedex" : {
275+ "request" : [{
276+ "node" : [{
277+ "name" : "someSite" ,
278+ "decision" : "approved" ,
279+ "time_decided" : 1300
280+ },
281+ {
282+ "name" : "someSite1" ,
283+ "decision" : "pending" ,
284+ "time_decided" : 1400
285+ },
286+ {
287+ "name" : "someSiteMSS" ,
288+ "decision" : "pending" ,
289+ "time_decided" : 1400
290+ },
291+ ],
292+ "id" : "someId" ,
293+ "type" : "xfer"
294+ }]}
295+ }
296+
297+ def getresponse (self ):
298+ return ContextualStringIO (json .dumps (self .response ))
299+
300+ from WmAgentScripts .utils import listSubscriptions
301+ with patch ('WmAgentScripts.utils.make_x509_conn' , MockResponseStringIo ):
302+ response = listSubscriptions (
303+ url = 'http://someurl.com/' ,
304+ dataset = 'somedataset'
305+ )
306+ self .assertDictEqual (
307+ response , {'someSite' : ('someId' , True ), 'someSite1' : ('someId' , False )})
308+
309+ response = listSubscriptions (
310+ url = 'http://someurl.com/' ,
311+ dataset = 'somedataset' ,
312+ within_sites = ['someSite' ]
313+ )
314+ self .assertDictEqual (
315+ response , {'someSite' : ('someId' , True )})
316+
265317if __name__ == '__main__' :
266318 unittest .main ()
0 commit comments