diff --git a/environs.py b/environs.py index 7fad43f..a41c16b 100644 --- a/environs.py +++ b/environs.py @@ -46,7 +46,10 @@ def method(self, name, default=ma.missing, subcast=None, **kwargs): raise EnvError( 'Environment variable "{}" not set'.format(proxied_key or parsed_key) ) - value = raw_value or field.missing + if raw_value or raw_value == "": + value = raw_value + else: + value = field.missing if preprocess: value = preprocess(value, subcast=subcast, **kwargs) try: diff --git a/tests/test_environs.py b/tests/test_environs.py index 12a4324..f787f12 100644 --- a/tests/test_environs.py +++ b/tests/test_environs.py @@ -47,6 +47,10 @@ def test_basic(self, set_env, env): set_env({"STR": "foo"}) assert env.str("STR") == "foo" + def test_empty_str(self, set_env, env): + set_env({"STR": ""}) + assert env.str("STR") == "" + def test_int_cast(self, set_env, env): set_env({"INT": "42"}) assert env.int("INT") == 42