mirror of
https://github.com/docker/compose.git
synced 2025-07-27 07:34:10 +02:00
Fix some tests failing with docker 1.1.2 and add a comment to recreate_container() explaining what it does.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This commit is contained in:
parent
dbd723659b
commit
71e7103662
@ -200,6 +200,10 @@ class Service(object):
|
|||||||
return tuples
|
return tuples
|
||||||
|
|
||||||
def recreate_container(self, container, **override_options):
|
def recreate_container(self, container, **override_options):
|
||||||
|
"""Recreate a container. An intermediate container is created so that
|
||||||
|
the new container has the same name, while still supporting
|
||||||
|
`volumes-from` the original container.
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
container.stop()
|
container.stop()
|
||||||
except APIError as e:
|
except APIError as e:
|
||||||
|
@ -94,7 +94,7 @@ class ProjectTest(DockerClientTestCase):
|
|||||||
|
|
||||||
def test_project_up_recreates_containers(self):
|
def test_project_up_recreates_containers(self):
|
||||||
web = self.create_service('web')
|
web = self.create_service('web')
|
||||||
db = self.create_service('db', volumes=['/var/db'])
|
db = self.create_service('db', volumes=['/etc'])
|
||||||
project = Project('figtest', [web, db], self.client)
|
project = Project('figtest', [web, db], self.client)
|
||||||
project.start()
|
project.start()
|
||||||
self.assertEqual(len(project.containers()), 0)
|
self.assertEqual(len(project.containers()), 0)
|
||||||
@ -102,15 +102,14 @@ class ProjectTest(DockerClientTestCase):
|
|||||||
project.up(['db'])
|
project.up(['db'])
|
||||||
self.assertEqual(len(project.containers()), 1)
|
self.assertEqual(len(project.containers()), 1)
|
||||||
old_db_id = project.containers()[0].id
|
old_db_id = project.containers()[0].id
|
||||||
db_volume_path = project.containers()[0].inspect()['Volumes']['/var/db']
|
db_volume_path = project.containers()[0].get('Volumes./etc')
|
||||||
|
|
||||||
project.up()
|
project.up()
|
||||||
self.assertEqual(len(project.containers()), 2)
|
self.assertEqual(len(project.containers()), 2)
|
||||||
|
|
||||||
db_container = [c for c in project.containers() if 'db' in c.name][0]
|
db_container = [c for c in project.containers() if 'db' in c.name][0]
|
||||||
self.assertNotEqual(db_container.id, old_db_id)
|
self.assertNotEqual(db_container.id, old_db_id)
|
||||||
self.assertEqual(db_container.inspect()['Volumes']['/var/db'],
|
self.assertEqual(db_container.get('Volumes./etc'), db_volume_path)
|
||||||
db_volume_path)
|
|
||||||
|
|
||||||
project.kill()
|
project.kill()
|
||||||
project.remove_stopped()
|
project.remove_stopped()
|
||||||
|
@ -107,14 +107,16 @@ class ServiceTest(DockerClientTestCase):
|
|||||||
host_service = self.create_service('host', volumes_from=[volume_service, volume_container_2])
|
host_service = self.create_service('host', volumes_from=[volume_service, volume_container_2])
|
||||||
host_container = host_service.create_container()
|
host_container = host_service.create_container()
|
||||||
host_service.start_container(host_container)
|
host_service.start_container(host_container)
|
||||||
self.assertIn(volume_container_1.id, host_container.inspect()['HostConfig']['VolumesFrom'])
|
self.assertIn(volume_container_1.id,
|
||||||
self.assertIn(volume_container_2.id, host_container.inspect()['HostConfig']['VolumesFrom'])
|
host_container.get('HostConfig.VolumesFrom'))
|
||||||
|
self.assertIn(volume_container_2.id,
|
||||||
|
host_container.get('HostConfig.VolumesFrom'))
|
||||||
|
|
||||||
def test_recreate_containers(self):
|
def test_recreate_containers(self):
|
||||||
service = self.create_service(
|
service = self.create_service(
|
||||||
'db',
|
'db',
|
||||||
environment={'FOO': '1'},
|
environment={'FOO': '1'},
|
||||||
volumes=['/var/db'],
|
volumes=['/etc'],
|
||||||
entrypoint=['sleep'],
|
entrypoint=['sleep'],
|
||||||
command=['300']
|
command=['300']
|
||||||
)
|
)
|
||||||
@ -124,7 +126,7 @@ class ServiceTest(DockerClientTestCase):
|
|||||||
self.assertIn('FOO=1', old_container.dictionary['Config']['Env'])
|
self.assertIn('FOO=1', old_container.dictionary['Config']['Env'])
|
||||||
self.assertEqual(old_container.name, 'figtest_db_1')
|
self.assertEqual(old_container.name, 'figtest_db_1')
|
||||||
service.start_container(old_container)
|
service.start_container(old_container)
|
||||||
volume_path = old_container.inspect()['Volumes']['/var/db']
|
volume_path = old_container.inspect()['Volumes']['/etc']
|
||||||
|
|
||||||
num_containers_before = len(self.client.containers(all=True))
|
num_containers_before = len(self.client.containers(all=True))
|
||||||
|
|
||||||
@ -140,7 +142,7 @@ class ServiceTest(DockerClientTestCase):
|
|||||||
self.assertEqual(new_container.dictionary['Config']['Cmd'], ['300'])
|
self.assertEqual(new_container.dictionary['Config']['Cmd'], ['300'])
|
||||||
self.assertIn('FOO=2', new_container.dictionary['Config']['Env'])
|
self.assertIn('FOO=2', new_container.dictionary['Config']['Env'])
|
||||||
self.assertEqual(new_container.name, 'figtest_db_1')
|
self.assertEqual(new_container.name, 'figtest_db_1')
|
||||||
self.assertEqual(new_container.inspect()['Volumes']['/var/db'], volume_path)
|
self.assertEqual(new_container.inspect()['Volumes']['/etc'], volume_path)
|
||||||
self.assertIn(intermediate_container.id, new_container.dictionary['HostConfig']['VolumesFrom'])
|
self.assertIn(intermediate_container.id, new_container.dictionary['HostConfig']['VolumesFrom'])
|
||||||
|
|
||||||
self.assertEqual(len(self.client.containers(all=True)), num_containers_before)
|
self.assertEqual(len(self.client.containers(all=True)), num_containers_before)
|
||||||
@ -340,18 +342,18 @@ class ServiceTest(DockerClientTestCase):
|
|||||||
|
|
||||||
def test_network_mode_none(self):
|
def test_network_mode_none(self):
|
||||||
service = self.create_service('web', net='none')
|
service = self.create_service('web', net='none')
|
||||||
container = service.start_container().inspect()
|
container = service.start_container()
|
||||||
self.assertEqual(container['HostConfig']['NetworkMode'], 'none')
|
self.assertEqual(container.get('HostConfig.NetworkMode'), 'none')
|
||||||
|
|
||||||
def test_network_mode_bridged(self):
|
def test_network_mode_bridged(self):
|
||||||
service = self.create_service('web', net='bridge')
|
service = self.create_service('web', net='bridge')
|
||||||
container = service.start_container().inspect()
|
container = service.start_container()
|
||||||
self.assertEqual(container['HostConfig']['NetworkMode'], 'bridge')
|
self.assertEqual(container.get('HostConfig.NetworkMode'), 'bridge')
|
||||||
|
|
||||||
def test_network_mode_host(self):
|
def test_network_mode_host(self):
|
||||||
service = self.create_service('web', net='host')
|
service = self.create_service('web', net='host')
|
||||||
container = service.start_container().inspect()
|
container = service.start_container()
|
||||||
self.assertEqual(container['HostConfig']['NetworkMode'], 'host')
|
self.assertEqual(container.get('HostConfig.NetworkMode'), 'host')
|
||||||
|
|
||||||
def test_dns_single_value(self):
|
def test_dns_single_value(self):
|
||||||
service = self.create_service('web', dns='8.8.8.8')
|
service = self.create_service('web', dns='8.8.8.8')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user