Fix logging dict merging

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2016-11-03 16:28:44 -07:00
parent f4c037d223
commit 6d02f3fb23
2 changed files with 46 additions and 1 deletions

View File

@ -771,7 +771,7 @@ def merge_service_dicts(base, override, version):
for field in ['dns', 'dns_search', 'env_file', 'tmpfs']:
md.merge_field(field, merge_list_or_string)
md.merge_field('logging', merge_logging)
md.merge_field('logging', merge_logging, default={})
for field in set(ALLOWED_KEYS) - set(md):
md.merge_scalar(field)

View File

@ -1657,6 +1657,51 @@ class ConfigTest(unittest.TestCase):
}
}
def test_merge_logging_v2_no_base(self):
base = {
'image': 'alpine:edge'
}
override = {
'logging': {
'driver': 'json-file',
'options': {
'frequency': '2000'
}
}
}
actual = config.merge_service_dicts(base, override, V2_0)
assert actual == {
'image': 'alpine:edge',
'logging': {
'driver': 'json-file',
'options': {
'frequency': '2000'
}
}
}
def test_merge_logging_v2_no_override(self):
base = {
'image': 'alpine:edge',
'logging': {
'driver': 'syslog',
'options': {
'frequency': '2000'
}
}
}
override = {}
actual = config.merge_service_dicts(base, override, V2_0)
assert actual == {
'image': 'alpine:edge',
'logging': {
'driver': 'syslog',
'options': {
'frequency': '2000'
}
}
}
def test_external_volume_config(self):
config_details = build_config_details({
'version': '2',