mirror of
https://github.com/docker/compose.git
synced 2025-07-23 13:45:00 +02:00
Unit tests for multiple files
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
831276f531
commit
89be7f1fa7
@ -166,14 +166,16 @@ def load(config_details):
|
|||||||
for name in set(base) | set(override)
|
for name in set(base) | set(override)
|
||||||
}
|
}
|
||||||
|
|
||||||
def combine_configs(override, base):
|
def combine_configs(base, override):
|
||||||
service_dicts = load_file(base.filename, base.config)
|
service_dicts = load_file(base.filename, base.config)
|
||||||
if not override:
|
if not override:
|
||||||
return service_dicts
|
return service_dicts
|
||||||
|
|
||||||
return merge_service_dicts(base.config, override.config)
|
return ConfigFile(
|
||||||
|
override.filename,
|
||||||
|
merge_services(base.config, override.config))
|
||||||
|
|
||||||
return reduce(combine_configs, configs, None)
|
return reduce(combine_configs, configs + [None])
|
||||||
|
|
||||||
|
|
||||||
class ServiceLoader(object):
|
class ServiceLoader(object):
|
||||||
|
@ -5,10 +5,10 @@ import shutil
|
|||||||
import tempfile
|
import tempfile
|
||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
|
|
||||||
from .. import mock
|
|
||||||
from .. import unittest
|
|
||||||
from compose.config import config
|
from compose.config import config
|
||||||
from compose.config.errors import ConfigurationError
|
from compose.config.errors import ConfigurationError
|
||||||
|
from tests import mock
|
||||||
|
from tests import unittest
|
||||||
|
|
||||||
|
|
||||||
def make_service_dict(name, service_dict, working_dir, filename=None):
|
def make_service_dict(name, service_dict, working_dir, filename=None):
|
||||||
@ -92,6 +92,43 @@ class ConfigTest(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_load_with_multiple_files(self):
|
||||||
|
base_file = config.ConfigFile(
|
||||||
|
'base.yaml',
|
||||||
|
{
|
||||||
|
'web': {
|
||||||
|
'image': 'example/web',
|
||||||
|
'links': ['db'],
|
||||||
|
},
|
||||||
|
'db': {
|
||||||
|
'image': 'example/db',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
override_file = config.ConfigFile(
|
||||||
|
'override.yaml',
|
||||||
|
{
|
||||||
|
'web': {
|
||||||
|
'build': '/',
|
||||||
|
'volumes': ['/home/user/project:/code'],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
details = config.ConfigDetails('.', [base_file, override_file])
|
||||||
|
|
||||||
|
service_dicts = config.load(details)
|
||||||
|
expected = [
|
||||||
|
{
|
||||||
|
'name': 'web',
|
||||||
|
'build': '/',
|
||||||
|
'links': ['db'],
|
||||||
|
'volumes': ['/home/user/project:/code'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'db',
|
||||||
|
'image': 'example/db',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
self.assertEqual(service_sort(service_dicts), service_sort(expected))
|
||||||
|
|
||||||
def test_config_valid_service_names(self):
|
def test_config_valid_service_names(self):
|
||||||
for valid_name in ['_', '-', '.__.', '_what-up.', 'what_.up----', 'whatup']:
|
for valid_name in ['_', '-', '.__.', '_what-up.', 'what_.up----', 'whatup']:
|
||||||
config.load(
|
config.load(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user