Browse Source

Merge pull request #2734 from jrabbit/empty-env-var-2359

Empty env var #2359
Joffrey F 9 years ago
parent
commit
fdf4a2e89e
3 changed files with 5 additions and 7 deletions
  1. 3 3
      compose/config/config.py
  2. 0 1
      tests/integration/service_test.py
  3. 2 3
      tests/unit/config/config_test.py

+ 3 - 3
compose/config/config.py

@@ -491,12 +491,12 @@ def resolve_environment(service_dict):
         env.update(env_vars_from_file(env_file))
 
     env.update(parse_environment(service_dict.get('environment')))
-    return dict(resolve_env_var(k, v) for k, v in six.iteritems(env))
+    return dict(filter(None, (resolve_env_var(k, v) for k, v in six.iteritems(env))))
 
 
 def resolve_build_args(build):
     args = parse_build_arguments(build.get('args'))
-    return dict(resolve_env_var(k, v) for k, v in six.iteritems(args))
+    return dict(filter(None, (resolve_env_var(k, v) for k, v in six.iteritems(args))))
 
 
 def validate_extended_service_dict(service_dict, filename, service):
@@ -806,7 +806,7 @@ def resolve_env_var(key, val):
     elif key in os.environ:
         return key, os.environ[key]
     else:
-        return key, ''
+        return ()
 
 
 def env_vars_from_file(filename):

+ 0 - 1
tests/integration/service_test.py

@@ -885,7 +885,6 @@ class ServiceTest(DockerClientTestCase):
             'FILE_DEF': 'F1',
             'FILE_DEF_EMPTY': '',
             'ENV_DEF': 'E3',
-            'NO_DEF': ''
         }.items():
             self.assertEqual(env[k], v)
 

+ 2 - 3
tests/unit/config/config_test.py

@@ -1776,7 +1776,7 @@ class EnvTest(unittest.TestCase):
         }
         self.assertEqual(
             resolve_environment(service_dict),
-            {'FILE_DEF': 'F1', 'FILE_DEF_EMPTY': '', 'ENV_DEF': 'E3', 'NO_DEF': ''},
+            {'FILE_DEF': 'F1', 'FILE_DEF_EMPTY': '', 'ENV_DEF': 'E3'},
         )
 
     def test_resolve_environment_from_env_file(self):
@@ -1817,7 +1817,6 @@ class EnvTest(unittest.TestCase):
                 'FILE_DEF': u'bär',
                 'FILE_DEF_EMPTY': '',
                 'ENV_DEF': 'E3',
-                'NO_DEF': ''
             },
         )
 
@@ -1836,7 +1835,7 @@ class EnvTest(unittest.TestCase):
         }
         self.assertEqual(
             resolve_build_args(build),
-            {'arg1': 'value1', 'empty_arg': '', 'env_arg': 'value2', 'no_env': ''},
+            {'arg1': 'value1', 'empty_arg': '', 'env_arg': 'value2'},
         )
 
     @pytest.mark.xfail(IS_WINDOWS_PLATFORM, reason='paths use slash')