aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--delivery_merge/utils.py10
-rw-r--r--tests/test_utils.py8
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'