From 9c2ffe6384e56f26dcdb7014def873a8235a979e Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Mon, 9 Jul 2018 15:28:32 -0400 Subject: [PATCH] Avoid overriding external = False in serializer Signed-off-by: Joffrey F --- compose/config/serialize.py | 2 +- tests/unit/config/config_test.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/compose/config/serialize.py b/compose/config/serialize.py index ccddbf532..8cb8a2808 100644 --- a/compose/config/serialize.py +++ b/compose/config/serialize.py @@ -78,7 +78,7 @@ def denormalize_config(config, image_digests=None): config.version >= V3_0 and config.version < v3_introduced_name_key(key)): del conf['name'] elif 'external' in conf: - conf['external'] = True + conf['external'] = bool(conf['external']) if 'attachable' in conf and config.version < V3_2: # For compatibility mode, this option is invalid in v2 diff --git a/tests/unit/config/config_test.py b/tests/unit/config/config_test.py index 085a2d010..08b92a573 100644 --- a/tests/unit/config/config_test.py +++ b/tests/unit/config/config_test.py @@ -5096,3 +5096,19 @@ class SerializeTest(unittest.TestCase): serialized_config = yaml.load(serialize_config(config_dict)) serialized_service = serialized_config['services']['web'] assert serialized_service['command'] == 'echo 十六夜 咲夜' + + def test_serialize_external_false(self): + cfg = { + 'version': '3.4', + 'volumes': { + 'test': { + 'name': 'test-false', + 'external': False + } + } + } + + config_dict = config.load(build_config_details(cfg)) + serialized_config = yaml.load(serialize_config(config_dict)) + serialized_volume = serialized_config['volumes']['test'] + assert serialized_volume['external'] is False