summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAanand Prasad <aanand.prasad@gmail.com>2016-01-20 15:54:37 +0000
committerAanand Prasad <aanand.prasad@gmail.com>2016-01-20 17:47:45 +0000
commit01a754a7f7fa335672eeea57998392af9168b9f2 (patch)
treef50ffcc32986acefaa5ec6d5b59ff4db5c566815 /tests
parent656e6cffb6cfc5c8b701334c4ca9cebdbb086f2d (diff)
downloaddocker-py-01a754a7f7fa335672eeea57998392af9168b9f2.tar.gz
Support links when creating containers or connecting to networks
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/helpers.py15
-rw-r--r--tests/integration/network_test.py49
-rw-r--r--tests/unit/network_test.py2
3 files changed, 66 insertions, 0 deletions
diff --git a/tests/helpers.py b/tests/helpers.py
index eca5035..21036ac 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -168,3 +168,18 @@ class BaseTestCase(unittest.TestCase):
.format(exitcode, output))
return container
+
+ def create_and_start(self, image='busybox', command='top', **kwargs):
+ container = self.client.create_container(
+ image=image, command=command, **kwargs)
+ self.tmp_containers.append(container)
+ self.client.start(container)
+ return container
+
+ def execute(self, container, cmd, exit_code=0, **kwargs):
+ exc = self.client.exec_create(container, cmd, **kwargs)
+ output = self.client.exec_start(exc)
+ actual_exit_code = self.client.exec_inspect(exc)['ExitCode']
+ msg = "Expected `{}` to exit with code {} but returned {}:\n{}".format(
+ " ".join(cmd), exit_code, actual_exit_code, output)
+ assert actual_exit_code == exit_code, msg
diff --git a/tests/integration/network_test.py b/tests/integration/network_test.py
index a6ec089..51cc53a 100644
--- a/tests/integration/network_test.py
+++ b/tests/integration/network_test.py
@@ -180,3 +180,52 @@ class TestNetworks(helpers.BaseTestCase):
self.assertEqual(
container_data['NetworkSettings']['Networks'][net_name]['Aliases'],
['foo', 'bar'])
+
+ @requires_api_version('1.22')
+ def test_create_with_links(self):
+ net_name, net_id = self.create_network()
+
+ container = self.create_and_start(
+ host_config=self.client.create_host_config(network_mode=net_name),
+ networking_config=self.client.create_networking_config({
+ net_name: self.client.create_endpoint_config(
+ links=[('docker-py-test-upstream', 'bar')],
+ ),
+ }),
+ )
+
+ container_data = self.client.inspect_container(container)
+ self.assertEqual(
+ container_data['NetworkSettings']['Networks'][net_name]['Links'],
+ ['docker-py-test-upstream:bar'])
+
+ self.create_and_start(
+ name='docker-py-test-upstream',
+ host_config=self.client.create_host_config(network_mode=net_name),
+ )
+
+ self.execute(container, ['nslookup', 'bar'])
+
+ @requires_api_version('1.22')
+ def test_connect_with_links(self):
+ net_name, net_id = self.create_network()
+
+ container = self.create_and_start(
+ host_config=self.client.create_host_config(network_mode=net_name))
+
+ self.client.disconnect_container_from_network(container, net_name)
+ self.client.connect_container_to_network(
+ container, net_name,
+ links=[('docker-py-test-upstream', 'bar')])
+
+ container_data = self.client.inspect_container(container)
+ self.assertEqual(
+ container_data['NetworkSettings']['Networks'][net_name]['Links'],
+ ['docker-py-test-upstream:bar'])
+
+ self.create_and_start(
+ name='docker-py-test-upstream',
+ host_config=self.client.create_host_config(network_mode=net_name),
+ )
+
+ self.execute(container, ['nslookup', 'bar'])
diff --git a/tests/unit/network_test.py b/tests/unit/network_test.py
index 492bcc7..5bba9db 100644
--- a/tests/unit/network_test.py
+++ b/tests/unit/network_test.py
@@ -150,6 +150,7 @@ class NetworkTest(DockerClientTest):
{'Id': container_id},
network_id,
aliases=['foo', 'bar'],
+ links=[('baz', 'quux')]
)
self.assertEqual(
@@ -162,6 +163,7 @@ class NetworkTest(DockerClientTest):
'Container': container_id,
'EndpointConfig': {
'Aliases': ['foo', 'bar'],
+ 'Links': ['baz:quux'],
},
})