Fix extends with multiple files.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2016-01-06 13:30:40 -05:00
parent 4017ea99fe
commit c7b71422c0
2 changed files with 33 additions and 0 deletions

View File

@ -422,6 +422,8 @@ def merge_service_dicts_from_files(base, override):
new_service = merge_service_dicts(base, override)
if 'extends' in override:
new_service['extends'] = override['extends']
elif 'extends' in base:
new_service['extends'] = base['extends']
return new_service

View File

@ -552,6 +552,37 @@ class ConfigTest(unittest.TestCase):
}
]
def test_merge_service_dicts_from_files_with_extends_in_base(self):
base = {
'volumes': ['.:/app'],
'extends': {'service': 'app'}
}
override = {
'image': 'alpine:edge',
}
actual = config.merge_service_dicts_from_files(base, override)
assert actual == {
'image': 'alpine:edge',
'volumes': ['.:/app'],
'extends': {'service': 'app'}
}
def test_merge_service_dicts_from_files_with_extends_in_override(self):
base = {
'volumes': ['.:/app'],
'extends': {'service': 'app'}
}
override = {
'image': 'alpine:edge',
'extends': {'service': 'foo'}
}
actual = config.merge_service_dicts_from_files(base, override)
assert actual == {
'image': 'alpine:edge',
'volumes': ['.:/app'],
'extends': {'service': 'foo'}
}
class PortsTest(unittest.TestCase):
INVALID_PORTS_TYPES = [