Add v2 configuration tests

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2015-12-01 17:28:42 -08:00
commit ecef5d37a7
5 changed files with 251 additions and 31 deletions

View file

@ -1,5 +1,7 @@
from __future__ import unicode_literals
import random
from .testcases import DockerClientTestCase
from compose.cli.docker_client import docker_client
from compose.config import config
@ -508,3 +510,81 @@ class ProjectTest(DockerClientTestCase):
project.up()
service = project.get_service('web')
self.assertEqual(len(service.containers()), 1)
def test_project_up_volumes(self):
vol_name = 'composetests_{0:x}'.format(random.getrandbits(32))
config_data = config.Config(
2, [{
'name': 'web',
'image': 'busybox:latest',
'command': 'top'
}], {vol_name: {'driver': 'local'}}
)
project = Project.from_config(
name='composetest',
config_data=config_data, client=self.client
)
project.up()
self.assertEqual(len(project.containers()), 1)
volume_data = self.client.inspect_volume(vol_name)
self.assertEqual(volume_data['Name'], vol_name)
self.assertEqual(volume_data['Driver'], 'local')
def test_initialize_volumes(self):
vol_name = 'composetests_{0:x}'.format(random.getrandbits(32))
config_data = config.Config(
2, [{
'name': 'web',
'image': 'busybox:latest',
'command': 'top'
}], {vol_name: {}}
)
project = Project.from_config(
name='composetest',
config_data=config_data, client=self.client
)
project.initialize_volumes()
volume_data = self.client.inspect_volume(vol_name)
self.assertEqual(volume_data['Name'], vol_name)
self.assertEqual(volume_data['Driver'], 'local')
def test_project_up_implicit_volume_driver(self):
vol_name = 'composetests_{0:x}'.format(random.getrandbits(32))
config_data = config.Config(
2, [{
'name': 'web',
'image': 'busybox:latest',
'command': 'top'
}], {vol_name: {}}
)
project = Project.from_config(
name='composetest',
config_data=config_data, client=self.client
)
project.up()
volume_data = self.client.inspect_volume(vol_name)
self.assertEqual(volume_data['Name'], vol_name)
self.assertEqual(volume_data['Driver'], 'local')
def test_project_up_invalid_volume_driver(self):
vol_name = 'composetests_{0:x}'.format(random.getrandbits(32))
config_data = config.Config(
2, [{
'name': 'web',
'image': 'busybox:latest',
'command': 'top'
}], {vol_name: {'driver': 'foobar'}}
)
project = Project.from_config(
name='composetest',
config_data=config_data, client=self.client
)
with self.assertRaises(config.ConfigurationError):
project.initialize_volumes()