Test network_aliases feature

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2016-02-12 16:58:29 -08:00 committed by Daniel Nephin
parent 2f7a77e954
commit c686be8fd3
5 changed files with 70 additions and 2 deletions

View File

@ -73,7 +73,9 @@ class Project(object):
service_dict.pop('networks', None)
links = project.get_links(service_dict)
network_mode = project.get_network_mode(service_dict, service_networks.keys())
network_mode = project.get_network_mode(
service_dict, list(service_networks.keys())
)
volumes_from = get_volumes_from(project, service_dict)
if config_data.version != V1:

View File

@ -445,6 +445,33 @@ class CLITestCase(DockerClientTestCase):
assert networks[0]['Options']['com.docker.network.bridge.enable_icc'] == 'false'
def test_up_with_network_aliases(self):
filename = 'network-aliases.yml'
self.base_dir = 'tests/fixtures/networks'
self.dispatch(['-f', filename, 'up', '-d'], None)
back_name = '{}_back'.format(self.project.name)
front_name = '{}_front'.format(self.project.name)
networks = [
n for n in self.client.networks()
if n['Name'].startswith('{}_'.format(self.project.name))
]
# Two networks were created: back and front
assert sorted(n['Name'] for n in networks) == [back_name, front_name]
web_container = self.project.get_service('web').containers()[0]
back_aliases = web_container.get(
'NetworkSettings.Networks.{}.Aliases'.format(back_name)
)
assert 'web' in back_aliases
front_aliases = web_container.get(
'NetworkSettings.Networks.{}.Aliases'.format(front_name)
)
assert 'web' in front_aliases
assert 'forward_facing' in front_aliases
assert 'ahead' in front_aliases
@v2_only()
def test_up_with_networks(self):
self.base_dir = 'tests/fixtures/networks'

View File

@ -0,0 +1,18 @@
version: "2"
services:
web:
image: busybox
command: top
networks:
- front
- back
network_aliases:
front:
- forward_facing
- ahead
networks:
front: {}
back: {}

View File

@ -543,6 +543,27 @@ class ConfigTest(unittest.TestCase):
assert services[1]['name'] == 'db'
assert services[2]['name'] == 'web'
def test_invalid_network_alias(self):
config_details = build_config_details({
'version': '2',
'services': {
'web': {
'image': 'busybox',
'networks': ['hello'],
'network_aliases': {
'world': ['planet', 'universe']
}
}
},
'networks': {
'hello': {},
'world': {}
}
})
with pytest.raises(ConfigurationError) as exc:
config.load(config_details)
assert 'not declared in the networks list' in exc.exconly()
def test_config_build_configuration(self):
service = config.load(
build_config_details(