diff options
-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' |