summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Cotton <jc@finaltransfer.net>2016-11-11 16:24:18 -0800
committerJoffrey F <joffrey@docker.com>2016-12-07 16:34:53 -0800
commitbc2782954b7156a2f2e9715acf7af226ea1809ef (patch)
tree980b77ee336465282f299bd4a39c1047d6495d14
parentfce9892e511b73de246ac543e58ef746258e54af (diff)
downloaddocker-py-bc2782954b7156a2f2e9715acf7af226ea1809ef.tar.gz
Fix parsing for an environment file with newlines
Fixes the new, purposely broken test added in the previous commit. Signed-off-by: Jon Cotton <jc@finaltransfer.net>
-rw-r--r--docker/utils/utils.py6
-rw-r--r--tests/unit/utils_test.py10
2 files changed, 14 insertions, 2 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index 1d27916..c3a2e13 100644
--- a/docker/utils/utils.py
+++ b/docker/utils/utils.py
@@ -1069,7 +1069,11 @@ def parse_env_file(env_file):
if line[0] == '#':
continue
- parse_line = line.strip().split('=', 1)
+ line = line.strip()
+ if not line:
+ continue
+
+ parse_line = line.split('=', 1)
if len(parse_line) == 2:
k, v = parse_line
environment[k] = v
diff --git a/tests/unit/utils_test.py b/tests/unit/utils_test.py
index f377c45..738c643 100644
--- a/tests/unit/utils_test.py
+++ b/tests/unit/utils_test.py
@@ -467,10 +467,18 @@ class ParseEnvFileTest(unittest.TestCase):
def test_parse_env_file_commented_line(self):
env_file = self.generate_tempfile(
file_content='USER=jdoe\n#PASS=secret')
- get_parse_env_file = parse_env_file((env_file))
+ get_parse_env_file = parse_env_file(env_file)
self.assertEqual(get_parse_env_file, {'USER': 'jdoe'})
os.unlink(env_file)
+ def test_parse_env_file_newline(self):
+ env_file = self.generate_tempfile(
+ file_content='\nUSER=jdoe\n\n\nPASS=secret')
+ get_parse_env_file = parse_env_file(env_file)
+ self.assertEqual(get_parse_env_file,
+ {'USER': 'jdoe', 'PASS': 'secret'})
+ os.unlink(env_file)
+
def test_parse_env_file_invalid_line(self):
env_file = self.generate_tempfile(
file_content='USER jdoe')