From a5fbf91b72f1f32fe61b2d7b3e0cd5d53fbf2aac Mon Sep 17 00:00:00 2001 From: Danil Kister Date: Wed, 21 Aug 2019 18:51:44 +0200 Subject: [PATCH] Prevent KeyError when remote network labels are None. Signed-off-by: Danil Kister --- compose/network.py | 2 +- tests/unit/network_test.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/compose/network.py b/compose/network.py index e0d711ff7..84531ecc7 100644 --- a/compose/network.py +++ b/compose/network.py @@ -226,7 +226,7 @@ def check_remote_network_config(remote, local): raise NetworkConfigChangedError(local.true_name, 'enable_ipv6') local_labels = local.labels or {} - remote_labels = remote.get('Labels', {}) + remote_labels = remote.get('Labels') or {} for k in set.union(set(remote_labels.keys()), set(local_labels.keys())): if k.startswith('com.docker.'): # We are only interested in user-specified labels continue diff --git a/tests/unit/network_test.py b/tests/unit/network_test.py index 82cfb3be2..b829de196 100644 --- a/tests/unit/network_test.py +++ b/tests/unit/network_test.py @@ -168,3 +168,8 @@ class NetworkTest(unittest.TestCase): mock_log.warning.assert_called_once_with(mock.ANY) _, args, kwargs = mock_log.warning.mock_calls[0] assert 'label "com.project.touhou.character" has changed' in args[0] + + def test_remote_config_labels_none(self): + remote = {'Labels': None} + local = Network(None, 'test_project', 'test_network') + check_remote_network_config(remote, local)