Merge pull request #2612 from dnephin/merge_extends_from_multiple_files

Fix extends with multiple files
This commit is contained in:
Daniel Nephin 2016-01-08 17:17:41 -05:00
commit ab98c70dd1
2 changed files with 33 additions and 0 deletions

View File

@ -516,6 +516,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

@ -738,6 +738,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 = [