mirror of https://github.com/pallets/flask.git
Set default encoding to UTF-8 for load_dotenv
This commit is contained in:
parent
6d9d79c70d
commit
33145c3699
|
|
@ -619,6 +619,9 @@ def load_dotenv(path=None):
|
|||
Returns ``False`` when python-dotenv is not installed, or when
|
||||
the given path isn't a file.
|
||||
|
||||
.. versionchanged:: 2.0
|
||||
When loading the env files, set the default encoding to UTF-8.
|
||||
|
||||
.. versionadded:: 1.0
|
||||
"""
|
||||
if dotenv is None:
|
||||
|
|
@ -636,7 +639,7 @@ def load_dotenv(path=None):
|
|||
# else False
|
||||
if path is not None:
|
||||
if os.path.isfile(path):
|
||||
return dotenv.load_dotenv(path)
|
||||
return dotenv.load_dotenv(path, encoding="utf-8")
|
||||
|
||||
return False
|
||||
|
||||
|
|
@ -651,7 +654,7 @@ def load_dotenv(path=None):
|
|||
if new_dir is None:
|
||||
new_dir = os.path.dirname(path)
|
||||
|
||||
dotenv.load_dotenv(path)
|
||||
dotenv.load_dotenv(path, encoding="utf-8")
|
||||
|
||||
return new_dir is not None # at least one file was located and loaded
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
FOO=env
|
||||
SPAM=1
|
||||
EGGS=2
|
||||
HAM=火腿
|
||||
|
|
|
|||
|
|
@ -505,7 +505,7 @@ need_dotenv = pytest.mark.skipif(dotenv is None, reason="dotenv is not installed
|
|||
@need_dotenv
|
||||
def test_load_dotenv(monkeypatch):
|
||||
# can't use monkeypatch.delitem since the keys don't exist yet
|
||||
for item in ("FOO", "BAR", "SPAM"):
|
||||
for item in ("FOO", "BAR", "SPAM", "HAM"):
|
||||
monkeypatch._setitem.append((os.environ, item, notset))
|
||||
|
||||
monkeypatch.setenv("EGGS", "3")
|
||||
|
|
@ -520,7 +520,8 @@ def test_load_dotenv(monkeypatch):
|
|||
assert os.environ["SPAM"] == "1"
|
||||
# set manually, files don't overwrite
|
||||
assert os.environ["EGGS"] == "3"
|
||||
|
||||
# test env file encoding
|
||||
assert os.environ["HAM"] == "火腿"
|
||||
# Non existent file should not load
|
||||
assert not load_dotenv("non-existent-file")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue