diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-05-08 17:28:30 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-05-08 17:29:56 -0400 |
commit | 5de3913067ee833bd632d7a5974edd79cf42965c (patch) | |
tree | dd2f2d90eda17f7cd63137f8259f6d5db539da37 | |
parent | fb2f9a7dac15cac84cc0700a8456f7329b51d3da (diff) | |
download | delivery_merge-5de3913067ee833bd632d7a5974edd79cf42965c.tar.gz |
getenv: allow empty value
-rw-r--r-- | delivery_merge/utils.py | 10 | ||||
-rw-r--r-- | tests/test_utils.py | 8 |
2 files changed, 17 insertions, 1 deletions
diff --git a/delivery_merge/utils.py b/delivery_merge/utils.py index e6ed117..2f23e0e 100644 --- a/delivery_merge/utils.py +++ b/delivery_merge/utils.py @@ -33,7 +33,15 @@ def getenv(s): :param s: str: key pairs separated by newlines :returns: dict: converted key pairs """ - return dict([x.split('=', 1) for x in s.splitlines() if x]) + results = [] + for x in s.splitlines(): + if not x: + continue + pair = x.split('=', 1) + if len(pair) < 2: + pair.append('') + results.append(pair) + return dict(results) @contextmanager diff --git a/tests/test_utils.py b/tests/test_utils.py index 2ced6bb..f4eceb5 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -38,6 +38,14 @@ class TestUtils: for k, v in result.items(): assert k == v + def test_getenv_empty_pair(self): + result = utils.getenv("INFINITE_FUN=") + assert not result.get('INFINITE_FUN') + + def test_getenv_multi_equal(self): + result = utils.getenv("INFINITE_FUN=LINE=10") + assert result.get('INFINITE_FUN') == 'LINE=10' + def test_getenv_multi_equal(self): result = utils.getenv("INFINITE_FUN=LINE=10") assert result.get('INFINITE_FUN') == 'LINE=10' |