mirror of https://github.com/docker/compose.git
Extract helper methods for building config objects from dicts
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
3f3c05e465
commit
2c75a8fdf5
|
@ -10,7 +10,7 @@
|
|||
- id: end-of-file-fixer
|
||||
- id: flake8
|
||||
- id: name-tests-test
|
||||
exclude: 'tests/integration/testcases.py'
|
||||
exclude: 'tests/(helpers\.py|integration/testcases\.py)'
|
||||
- id: requirements-txt-fixer
|
||||
- id: trailing-whitespace
|
||||
- repo: git://github.com/asottile/reorder_python_imports
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from compose.config.config import ConfigDetails
|
||||
from compose.config.config import ConfigFile
|
||||
from compose.config.config import load
|
||||
|
||||
|
||||
def build_config(contents, **kwargs):
|
||||
return load(build_config_details(contents, **kwargs))
|
||||
|
||||
|
||||
def build_config_details(contents, working_dir='working_dir', filename='filename.yml'):
|
||||
return ConfigDetails(
|
||||
working_dir,
|
||||
[ConfigFile(filename, contents)])
|
|
@ -7,6 +7,7 @@ import py
|
|||
import pytest
|
||||
from docker.errors import NotFound
|
||||
|
||||
from ..helpers import build_config
|
||||
from .testcases import DockerClientTestCase
|
||||
from compose.config import config
|
||||
from compose.config import ConfigurationError
|
||||
|
@ -20,13 +21,6 @@ from compose.service import ConvergenceStrategy
|
|||
from tests.integration.testcases import v2_only
|
||||
|
||||
|
||||
def build_service_dicts(service_config):
|
||||
return config.load(
|
||||
config.ConfigDetails(
|
||||
'working_dir',
|
||||
[config.ConfigFile(None, service_config)]))
|
||||
|
||||
|
||||
class ProjectTest(DockerClientTestCase):
|
||||
|
||||
def test_containers(self):
|
||||
|
@ -67,19 +61,18 @@ class ProjectTest(DockerClientTestCase):
|
|||
)
|
||||
|
||||
def test_volumes_from_service(self):
|
||||
service_dicts = build_service_dicts({
|
||||
'data': {
|
||||
'image': 'busybox:latest',
|
||||
'volumes': ['/var/data'],
|
||||
},
|
||||
'db': {
|
||||
'image': 'busybox:latest',
|
||||
'volumes_from': ['data'],
|
||||
},
|
||||
})
|
||||
project = Project.from_config(
|
||||
name='composetest',
|
||||
config_data=service_dicts,
|
||||
config_data=build_config({
|
||||
'data': {
|
||||
'image': 'busybox:latest',
|
||||
'volumes': ['/var/data'],
|
||||
},
|
||||
'db': {
|
||||
'image': 'busybox:latest',
|
||||
'volumes_from': ['data'],
|
||||
},
|
||||
}),
|
||||
client=self.client,
|
||||
)
|
||||
db = project.get_service('db')
|
||||
|
@ -96,7 +89,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
)
|
||||
project = Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'db': {
|
||||
'image': 'busybox:latest',
|
||||
'volumes_from': ['composetest_data_container'],
|
||||
|
@ -112,7 +105,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
project = Project.from_config(
|
||||
name='composetest',
|
||||
client=self.client,
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'version': V2_0,
|
||||
'services': {
|
||||
'net': {
|
||||
|
@ -139,7 +132,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
def get_project():
|
||||
return Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'version': V2_0,
|
||||
'services': {
|
||||
'web': {
|
||||
|
@ -174,7 +167,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
def test_net_from_service_v1(self):
|
||||
project = Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'net': {
|
||||
'image': 'busybox:latest',
|
||||
'command': ["top"]
|
||||
|
@ -198,7 +191,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
def get_project():
|
||||
return Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'web': {
|
||||
'image': 'busybox:latest',
|
||||
'net': 'container:composetest_net_container'
|
||||
|
@ -469,7 +462,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
def test_project_up_starts_depends(self):
|
||||
project = Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'console': {
|
||||
'image': 'busybox:latest',
|
||||
'command': ["top"],
|
||||
|
@ -504,7 +497,7 @@ class ProjectTest(DockerClientTestCase):
|
|||
def test_project_up_with_no_deps(self):
|
||||
project = Project.from_config(
|
||||
name='composetest',
|
||||
config_data=build_service_dicts({
|
||||
config_data=build_config({
|
||||
'console': {
|
||||
'image': 'busybox:latest',
|
||||
'command': ["top"],
|
||||
|
|
|
@ -11,6 +11,7 @@ from operator import itemgetter
|
|||
import py
|
||||
import pytest
|
||||
|
||||
from ...helpers import build_config_details
|
||||
from compose.config import config
|
||||
from compose.config.config import resolve_build_args
|
||||
from compose.config.config import resolve_environment
|
||||
|
@ -43,12 +44,6 @@ def service_sort(services):
|
|||
return sorted(services, key=itemgetter('name'))
|
||||
|
||||
|
||||
def build_config_details(contents, working_dir='working_dir', filename='filename.yml'):
|
||||
return config.ConfigDetails(
|
||||
working_dir,
|
||||
[config.ConfigFile(filename, contents)])
|
||||
|
||||
|
||||
class ConfigTest(unittest.TestCase):
|
||||
def test_load(self):
|
||||
service_dicts = config.load(
|
||||
|
|
Loading…
Reference in New Issue