From 5de3913067ee833bd632d7a5974edd79cf42965c Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 May 2019 17:28:30 -0400 Subject: getenv: allow empty value --- delivery_merge/utils.py | 10 +++++++++- tests/test_utils.py | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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' -- cgit