diff --git a/docs/config.rst b/docs/config.rst index c25bf83f..7a5e4da1 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -594,9 +594,12 @@ exist on the parent dict will be initialized to an empty dict. app.config["MYAPI"]["credentials"]["username"] # Is "user123" -For even more config loading features, including merging, try a -dedicated library such as Dynaconf_, which includes integration with -Flask. +On Windows, environment variable keys are always uppercase, therefore +the above example would end up as ``MYAPI__CREDENTIALS__USERNAME``. + +For even more config loading features, including merging and +case-insensitive Windows support, try a dedicated library such as +Dynaconf_, which includes integration with Flask. .. _Dynaconf: https://www.dynaconf.com/ diff --git a/tests/test_config.py b/tests/test_config.py index 22aacd36..bbe4f1e2 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -79,12 +79,24 @@ def test_from_prefixed_env_nested(monkeypatch): app.config["EXIST"] = {"ok": "value", "flag": True, "inner": {"ik": 1}} app.config.from_prefixed_env() - assert app.config["EXIST"] == { - "ok": "other", - "flag": True, - "inner": {"ik": 2}, - "new": {"more": {"k": False}}, - } + if os.name != "nt": + assert app.config["EXIST"] == { + "ok": "other", + "flag": True, + "inner": {"ik": 2}, + "new": {"more": {"k": False}}, + } + else: + # Windows env var keys are always uppercase. + assert app.config["EXIST"] == { + "ok": "value", + "OK": "other", + "flag": True, + "inner": {"ik": 1}, + "INNER": {"IK": 2}, + "NEW": {"MORE": {"k": False}}, + } + assert app.config["NEW"] == {"K": "v"}