test(backend): rend la configuration de test independante du poste

APP_ENV, APP_DEBUG, APP_LOG_LEVEL et APP_CORS_ORIGINS n'etaient poses nulle
part : le .env du developpeur les decidait, alors que les tests assertent en
dur l'environnement et que create_app coupe /openapi.json hors developpement.
Un poste portant APP_ENV=prod faisait tomber deux tests.

Fixe aussi asyncio_default_fixture_loop_scope, que pytest-asyncio 1.4 reclame.
This commit is contained in:
Johan LEROY
2026-09-15 09:57:46 +02:00
parent 552391c9bd
commit 98ec01c847
2 changed files with 12 additions and 1 deletions
+11 -1
View File
@@ -10,9 +10,19 @@ from app.db.session import get_engine, get_session_factory
from app.main import create_app
# Piege : les variables d'environnement priment sur apps/backend/.env. Celles qu'on ne
# pose pas ici, c'est le .env du poste qui les decide, et les assertions avec.
@pytest.fixture(autouse=True, scope="session")
def environment() -> Iterator[None]:
os.environ.setdefault("APP_SECRET_KEY", "secret-de-test")
os.environ.update(
{
"APP_ENV": "local",
"APP_DEBUG": "false",
"APP_LOG_LEVEL": "WARNING",
"APP_CORS_ORIGINS": "",
"APP_SECRET_KEY": "secret-de-test",
}
)
os.environ.setdefault(
"DATABASE_URL", "postgresql+asyncpg://enervision:change_me@localhost:5433/enervision_test"
)