@@ -369,6 +369,41 @@ def test_list_containers(self):
369
369
timeout = DEFAULT_TIMEOUT_SECONDS
370
370
)
371
371
372
+ def test_list_networks (self ):
373
+ networks = [
374
+ {
375
+ "name" : "none" ,
376
+ "id" : "8e4e55c6863ef424" ,
377
+ "type" : "null" ,
378
+ "endpoints" : []
379
+ },
380
+ {
381
+ "name" : "host" ,
382
+ "id" : "062b6d9ea7913fde" ,
383
+ "type" : "host" ,
384
+ "endpoints" : []
385
+ },
386
+ ]
387
+
388
+ get = mock .Mock (return_value = response (
389
+ status_code = 200 , content = json .dumps (networks ).encode ('utf-8' )))
390
+
391
+ with mock .patch ('docker.Client.get' , get ):
392
+ self .assertEqual (self .client .networks (), networks )
393
+
394
+ self .assertEqual (get .call_args [0 ][0 ], url_prefix + 'networks' )
395
+
396
+ filters = json .loads (get .call_args [1 ]['params' ]['filters' ])
397
+ self .assertFalse (filters )
398
+
399
+ self .client .networks (names = ['foo' ])
400
+ filters = json .loads (get .call_args [1 ]['params' ]['filters' ])
401
+ self .assertEqual (filters , {'name' : ['foo' ]})
402
+
403
+ self .client .networks (ids = ['123' ])
404
+ filters = json .loads (get .call_args [1 ]['params' ]['filters' ])
405
+ self .assertEqual (filters , {'id' : ['123' ]})
406
+
372
407
#####################
373
408
# CONTAINER TESTS #
374
409
#####################
@@ -2229,6 +2264,105 @@ def test_remove_volume(self):
2229
2264
self .assertEqual (args [0 ][0 ], 'DELETE' )
2230
2265
self .assertEqual (args [0 ][1 ], '{0}volumes/{1}' .format (url_prefix , name ))
2231
2266
2267
+ #####################
2268
+ # NETWORK TESTS #
2269
+ #####################
2270
+
2271
+ def test_create_network (self ):
2272
+ network_data = {
2273
+ "id" : 'abc12345' ,
2274
+ "warning" : "" ,
2275
+ }
2276
+
2277
+ network_response = response (status_code = 200 , content = network_data )
2278
+ post = mock .Mock (return_value = network_response )
2279
+
2280
+ with mock .patch ('docker.Client.post' , post ):
2281
+ result = self .client .create_network ('foo' )
2282
+ self .assertEqual (result , network_data )
2283
+
2284
+ self .assertEqual (
2285
+ post .call_args [0 ][0 ],
2286
+ url_prefix + 'networks/create' )
2287
+
2288
+ self .assertEqual (
2289
+ json .loads (post .call_args [1 ]['data' ]),
2290
+ {"name" : "foo" })
2291
+
2292
+ self .client .create_network ('foo' , 'bridge' )
2293
+
2294
+ self .assertEqual (
2295
+ json .loads (post .call_args [1 ]['data' ]),
2296
+ {"name" : "foo" , "driver" : "bridge" })
2297
+
2298
+ def test_remove_network (self ):
2299
+ network_id = 'abc12345'
2300
+ delete = mock .Mock (return_value = response (status_code = 200 ))
2301
+
2302
+ with mock .patch ('docker.Client.delete' , delete ):
2303
+ self .client .remove_network (network_id )
2304
+
2305
+ args = delete .call_args
2306
+ self .assertEqual (args [0 ][0 ],
2307
+ url_prefix + 'networks/{0}' .format (network_id ))
2308
+
2309
+ def test_inspect_network (self ):
2310
+ network_id = 'abc12345'
2311
+ network_name = 'foo'
2312
+ network_data = {
2313
+ six .u ('name' ): network_name ,
2314
+ six .u ('id' ): network_id ,
2315
+ six .u ('driver' ): 'bridge' ,
2316
+ six .u ('containers' ): {},
2317
+ }
2318
+
2319
+ network_response = response (status_code = 200 , content = network_data )
2320
+ get = mock .Mock (return_value = network_response )
2321
+
2322
+ with mock .patch ('docker.Client.get' , get ):
2323
+ result = self .client .inspect_network (network_id )
2324
+ self .assertEqual (result , network_data )
2325
+
2326
+ args = get .call_args
2327
+ self .assertEqual (args [0 ][0 ],
2328
+ url_prefix + 'networks/{0}' .format (network_id ))
2329
+
2330
+ def test_connect_container_to_network (self ):
2331
+ network_id = 'abc12345'
2332
+ container_id = 'def45678'
2333
+
2334
+ post = mock .Mock (return_value = response (status_code = 201 ))
2335
+
2336
+ with mock .patch ('docker.Client.post' , post ):
2337
+ self .client .connect_container_to_network (
2338
+ {'Id' : container_id }, network_id )
2339
+
2340
+ self .assertEqual (
2341
+ post .call_args [0 ][0 ],
2342
+ url_prefix + 'networks/{0}/connect' .format (network_id ))
2343
+
2344
+ self .assertEqual (
2345
+ json .loads (post .call_args [1 ]['data' ]),
2346
+ {'container' : container_id })
2347
+
2348
+ def test_disconnect_container_from_network (self ):
2349
+ network_id = 'abc12345'
2350
+ container_id = 'def45678'
2351
+
2352
+ post = mock .Mock (return_value = response (status_code = 201 ))
2353
+
2354
+ with mock .patch ('docker.Client.post' , post ):
2355
+ self .client .disconnect_container_from_network (
2356
+ {'Id' : container_id }, network_id )
2357
+
2358
+ self .assertEqual (
2359
+ post .call_args [0 ][0 ],
2360
+ url_prefix + 'networks/{0}/disconnect' .format (network_id ))
2361
+
2362
+ self .assertEqual (
2363
+ json .loads (post .call_args [1 ]['data' ]),
2364
+ {'container' : container_id })
2365
+
2232
2366
#######################
2233
2367
# PY SPECIFIC TESTS #
2234
2368
#######################
0 commit comments