summaryrefslogtreecommitdiff
path: root/tests/test.py
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2015-09-23 17:00:37 +0200
committerJoffrey F <joffrey@docker.com>2015-10-14 17:26:50 -0700
commit53589e5f0a4ddfc3cec8f48b5f3d807e2deb0ace (patch)
tree10fdb46ecbd9ed961c92ca43ea0f774781a15cf8 /tests/test.py
parenta1393ee8ac4a55e6215079baacc9ec7777a9c965 (diff)
downloaddocker-py-53589e5f0a4ddfc3cec8f48b5f3d807e2deb0ace.tar.gz
Implement methods for managing networks
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
Diffstat (limited to 'tests/test.py')
-rw-r--r--tests/test.py134
1 files changed, 134 insertions, 0 deletions
diff --git a/tests/test.py b/tests/test.py
index 719ac9e..42c925f 100644
--- a/tests/test.py
+++ b/tests/test.py
@@ -369,6 +369,41 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
timeout=DEFAULT_TIMEOUT_SECONDS
)
+ def test_list_networks(self):
+ networks = [
+ {
+ "name": "none",
+ "id": "8e4e55c6863ef424",
+ "type": "null",
+ "endpoints": []
+ },
+ {
+ "name": "host",
+ "id": "062b6d9ea7913fde",
+ "type": "host",
+ "endpoints": []
+ },
+ ]
+
+ get = mock.Mock(return_value=response(
+ status_code=200, content=json.dumps(networks).encode('utf-8')))
+
+ with mock.patch('docker.Client.get', get):
+ self.assertEqual(self.client.networks(), networks)
+
+ self.assertEqual(get.call_args[0][0], url_prefix + 'networks')
+
+ filters = json.loads(get.call_args[1]['params']['filters'])
+ self.assertFalse(filters)
+
+ self.client.networks(names=['foo'])
+ filters = json.loads(get.call_args[1]['params']['filters'])
+ self.assertEqual(filters, {'name': ['foo']})
+
+ self.client.networks(ids=['123'])
+ filters = json.loads(get.call_args[1]['params']['filters'])
+ self.assertEqual(filters, {'id': ['123']})
+
#####################
# CONTAINER TESTS #
#####################
@@ -2229,6 +2264,105 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
self.assertEqual(args[0][0], 'DELETE')
self.assertEqual(args[0][1], '{0}volumes/{1}'.format(url_prefix, name))
+ #####################
+ # NETWORK TESTS #
+ #####################
+
+ def test_create_network(self):
+ network_data = {
+ "id": 'abc12345',
+ "warning": "",
+ }
+
+ network_response = response(status_code=200, content=network_data)
+ post = mock.Mock(return_value=network_response)
+
+ with mock.patch('docker.Client.post', post):
+ result = self.client.create_network('foo')
+ self.assertEqual(result, network_data)
+
+ self.assertEqual(
+ post.call_args[0][0],
+ url_prefix + 'networks/create')
+
+ self.assertEqual(
+ json.loads(post.call_args[1]['data']),
+ {"name": "foo"})
+
+ self.client.create_network('foo', 'bridge')
+
+ self.assertEqual(
+ json.loads(post.call_args[1]['data']),
+ {"name": "foo", "driver": "bridge"})
+
+ def test_remove_network(self):
+ network_id = 'abc12345'
+ delete = mock.Mock(return_value=response(status_code=200))
+
+ with mock.patch('docker.Client.delete', delete):
+ self.client.remove_network(network_id)
+
+ args = delete.call_args
+ self.assertEqual(args[0][0],
+ url_prefix + 'networks/{0}'.format(network_id))
+
+ def test_inspect_network(self):
+ network_id = 'abc12345'
+ network_name = 'foo'
+ network_data = {
+ six.u('name'): network_name,
+ six.u('id'): network_id,
+ six.u('driver'): 'bridge',
+ six.u('containers'): {},
+ }
+
+ network_response = response(status_code=200, content=network_data)
+ get = mock.Mock(return_value=network_response)
+
+ with mock.patch('docker.Client.get', get):
+ result = self.client.inspect_network(network_id)
+ self.assertEqual(result, network_data)
+
+ args = get.call_args
+ self.assertEqual(args[0][0],
+ url_prefix + 'networks/{0}'.format(network_id))
+
+ def test_connect_container_to_network(self):
+ network_id = 'abc12345'
+ container_id = 'def45678'
+
+ post = mock.Mock(return_value=response(status_code=201))
+
+ with mock.patch('docker.Client.post', post):
+ self.client.connect_container_to_network(
+ {'Id': container_id}, network_id)
+
+ self.assertEqual(
+ post.call_args[0][0],
+ url_prefix + 'networks/{0}/connect'.format(network_id))
+
+ self.assertEqual(
+ json.loads(post.call_args[1]['data']),
+ {'container': container_id})
+
+ def test_disconnect_container_from_network(self):
+ network_id = 'abc12345'
+ container_id = 'def45678'
+
+ post = mock.Mock(return_value=response(status_code=201))
+
+ with mock.patch('docker.Client.post', post):
+ self.client.disconnect_container_from_network(
+ {'Id': container_id}, network_id)
+
+ self.assertEqual(
+ post.call_args[0][0],
+ url_prefix + 'networks/{0}/disconnect'.format(network_id))
+
+ self.assertEqual(
+ json.loads(post.call_args[1]['data']),
+ {'container': container_id})
+
#######################
# PY SPECIFIC TESTS #
#######################