diff options
| author | Jon Cotton <jc@finaltransfer.net> | 2016-11-11 16:24:18 -0800 |
|---|---|---|
| committer | Joffrey F <joffrey@docker.com> | 2016-12-07 16:34:53 -0800 |
| commit | bc2782954b7156a2f2e9715acf7af226ea1809ef (patch) | |
| tree | 980b77ee336465282f299bd4a39c1047d6495d14 | |
| parent | fce9892e511b73de246ac543e58ef746258e54af (diff) | |
| download | docker-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.py | 6 | ||||
| -rw-r--r-- | tests/unit/utils_test.py | 10 |
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') |
