Merge pull request #1489 from dnephin/faster_integration_tests
Faster integration tests
(cherry picked from commit 5231288b4e)
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
Conflicts:
compose/cli/main.py
This commit is contained in:
parent
c1b9a76a54
commit
4911c77134
15 changed files with 151 additions and 111 deletions
|
|
@ -2,8 +2,9 @@ from __future__ import unicode_literals
|
|||
from __future__ import absolute_import
|
||||
import os
|
||||
from os import path
|
||||
import mock
|
||||
|
||||
from docker.errors import APIError
|
||||
import mock
|
||||
import tempfile
|
||||
import shutil
|
||||
import six
|
||||
|
|
@ -18,11 +19,11 @@ from compose.const import (
|
|||
)
|
||||
from compose.service import (
|
||||
ConfigError,
|
||||
ConvergencePlan,
|
||||
Service,
|
||||
build_extra_hosts,
|
||||
)
|
||||
from compose.container import Container
|
||||
from docker.errors import APIError
|
||||
from .testcases import DockerClientTestCase
|
||||
|
||||
|
||||
|
|
@ -235,7 +236,12 @@ class ServiceTest(DockerClientTestCase):
|
|||
def test_create_container_with_volumes_from(self):
|
||||
volume_service = self.create_service('data')
|
||||
volume_container_1 = volume_service.create_container()
|
||||
volume_container_2 = Container.create(self.client, image='busybox:latest', command=["top"])
|
||||
volume_container_2 = Container.create(
|
||||
self.client,
|
||||
image='busybox:latest',
|
||||
command=["top"],
|
||||
labels={LABEL_PROJECT: 'composetest'},
|
||||
)
|
||||
host_service = self.create_service('host', volumes_from=[volume_service, volume_container_2])
|
||||
host_container = host_service.create_container()
|
||||
host_service.start_container(host_container)
|
||||
|
|
@ -244,7 +250,7 @@ class ServiceTest(DockerClientTestCase):
|
|||
self.assertIn(volume_container_2.id,
|
||||
host_container.get('HostConfig.VolumesFrom'))
|
||||
|
||||
def test_converge(self):
|
||||
def test_execute_convergence_plan_recreate(self):
|
||||
service = self.create_service(
|
||||
'db',
|
||||
environment={'FOO': '1'},
|
||||
|
|
@ -264,7 +270,8 @@ class ServiceTest(DockerClientTestCase):
|
|||
num_containers_before = len(self.client.containers(all=True))
|
||||
|
||||
service.options['environment']['FOO'] = '2'
|
||||
new_container = service.converge()[0]
|
||||
new_container, = service.execute_convergence_plan(
|
||||
ConvergencePlan('recreate', [old_container]))
|
||||
|
||||
self.assertEqual(new_container.get('Config.Entrypoint'), ['top'])
|
||||
self.assertEqual(new_container.get('Config.Cmd'), ['-d', '1'])
|
||||
|
|
@ -281,7 +288,7 @@ class ServiceTest(DockerClientTestCase):
|
|||
self.client.inspect_container,
|
||||
old_container.id)
|
||||
|
||||
def test_converge_when_containers_are_stopped(self):
|
||||
def test_execute_convergence_plan_when_containers_are_stopped(self):
|
||||
service = self.create_service(
|
||||
'db',
|
||||
environment={'FOO': '1'},
|
||||
|
|
@ -290,11 +297,21 @@ class ServiceTest(DockerClientTestCase):
|
|||
command=['-d', '1']
|
||||
)
|
||||
service.create_container()
|
||||
self.assertEqual(len(service.containers(stopped=True)), 1)
|
||||
service.converge()
|
||||
self.assertEqual(len(service.containers(stopped=True)), 1)
|
||||
|
||||
def test_converge_with_image_declared_volume(self):
|
||||
containers = service.containers(stopped=True)
|
||||
self.assertEqual(len(containers), 1)
|
||||
container, = containers
|
||||
self.assertFalse(container.is_running)
|
||||
|
||||
service.execute_convergence_plan(ConvergencePlan('start', [container]))
|
||||
|
||||
containers = service.containers()
|
||||
self.assertEqual(len(containers), 1)
|
||||
container.inspect()
|
||||
self.assertEqual(container, containers[0])
|
||||
self.assertTrue(container.is_running)
|
||||
|
||||
def test_execute_convergence_plan_with_image_declared_volume(self):
|
||||
service = Service(
|
||||
project='composetest',
|
||||
name='db',
|
||||
|
|
@ -306,7 +323,8 @@ class ServiceTest(DockerClientTestCase):
|
|||
self.assertEqual(old_container.get('Volumes').keys(), ['/data'])
|
||||
volume_path = old_container.get('Volumes')['/data']
|
||||
|
||||
new_container = service.converge()[0]
|
||||
new_container, = service.execute_convergence_plan(
|
||||
ConvergencePlan('recreate', [old_container]))
|
||||
self.assertEqual(new_container.get('Volumes').keys(), ['/data'])
|
||||
self.assertEqual(new_container.get('Volumes')['/data'], volume_path)
|
||||
|
||||
|
|
@ -408,7 +426,7 @@ class ServiceTest(DockerClientTestCase):
|
|||
self.assertEqual(len(self.client.images(name='composetest_test')), 1)
|
||||
|
||||
def test_start_container_uses_tagged_image_if_it_exists(self):
|
||||
self.client.build('tests/fixtures/simple-dockerfile', tag='composetest_test')
|
||||
self.check_build('tests/fixtures/simple-dockerfile', tag='composetest_test')
|
||||
service = Service(
|
||||
name='test',
|
||||
client=self.client,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue