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