From 498c03a9f4564537413a3fc055e77f6517dcb2d3 Mon Sep 17 00:00:00 2001 From: Bruno Rocha Date: Wed, 21 Sep 2022 16:49:26 +0100 Subject: [PATCH] Rebind current env when forced for Pytest Fix #728 --- dynaconf/base.py | 1 + tests_functional/issues/728_pytest/Makefile | 4 ++++ tests_functional/issues/728_pytest/config.py | 9 +++++++++ tests_functional/issues/728_pytest/settings.toml | 8 ++++++++ tests_functional/issues/728_pytest/tests.py | 16 ++++++++++++++++ 5 files changed, 38 insertions(+) create mode 100644 tests_functional/issues/728_pytest/Makefile create mode 100644 tests_functional/issues/728_pytest/config.py create mode 100644 tests_functional/issues/728_pytest/settings.toml create mode 100644 tests_functional/issues/728_pytest/tests.py diff --git a/dynaconf/base.py b/dynaconf/base.py index 51e09a404..2858b5492 100644 --- a/dynaconf/base.py +++ b/dynaconf/base.py @@ -694,6 +694,7 @@ def current_env(self): return self.MAIN_ENV_FOR_DYNACONF.lower() if self.FORCE_ENV_FOR_DYNACONF is not None: + self.ENV_FOR_DYNACONF = self.FORCE_ENV_FOR_DYNACONF return self.FORCE_ENV_FOR_DYNACONF try: diff --git a/tests_functional/issues/728_pytest/Makefile b/tests_functional/issues/728_pytest/Makefile new file mode 100644 index 000000000..ebe3e7056 --- /dev/null +++ b/tests_functional/issues/728_pytest/Makefile @@ -0,0 +1,4 @@ +.PHONY: test + +test: + pytest -sv tests.py diff --git a/tests_functional/issues/728_pytest/config.py b/tests_functional/issues/728_pytest/config.py new file mode 100644 index 000000000..14435a787 --- /dev/null +++ b/tests_functional/issues/728_pytest/config.py @@ -0,0 +1,9 @@ +from __future__ import annotations + +from dynaconf import Dynaconf + +settings = Dynaconf( + envvar_prefix="ISSUE728", + settings_files=["settings.toml", ".secrets.toml"], + environments=True, +) diff --git a/tests_functional/issues/728_pytest/settings.toml b/tests_functional/issues/728_pytest/settings.toml new file mode 100644 index 000000000..21cd18f8c --- /dev/null +++ b/tests_functional/issues/728_pytest/settings.toml @@ -0,0 +1,8 @@ +[default] +name = "default name" + +[development] +name = "development name" + +[testing] +name = "testing name" diff --git a/tests_functional/issues/728_pytest/tests.py b/tests_functional/issues/728_pytest/tests.py new file mode 100644 index 000000000..a2cad668e --- /dev/null +++ b/tests_functional/issues/728_pytest/tests.py @@ -0,0 +1,16 @@ +from __future__ import annotations + +import pytest +from config import settings + + +@pytest.fixture(scope="session", autouse=True) +def set_test_settings(): + settings.configure(FORCE_ENV_FOR_DYNACONF="testing") + assert settings.current_env == "testing" + + +def test_running_on_testing_environment(): + assert settings.current_env == "testing" + assert settings.ENV_FOR_DYNACONF == "testing" + assert settings.NAME == "testing name"