33 lines
836 B
Python
33 lines
836 B
Python
"""Shared test bootstrap.
|
|
|
|
Loads the repo-root ``.env`` so modules that import ``common.config``
|
|
(which is a process-wide singleton) can resolve ``APP_CONFIG_SECRET_KEY``
|
|
at collection time. Without it, any test importing ``backend.api.*`` fails
|
|
with a RuntimeError about ENC(...) ciphertext.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
_REPO_ROOT = Path(__file__).resolve().parent.parent.parent
|
|
|
|
|
|
def _bootstrap() -> None:
|
|
if os.environ.get("APP_CONFIG_SECRET_KEY"):
|
|
return
|
|
env_file = _REPO_ROOT / ".env"
|
|
if not env_file.is_file():
|
|
return
|
|
try:
|
|
from dotenv import dotenv_values
|
|
except ImportError:
|
|
return
|
|
value = dotenv_values(env_file).get("APP_CONFIG_SECRET_KEY")
|
|
if value:
|
|
os.environ["APP_CONFIG_SECRET_KEY"] = value
|
|
|
|
|
|
_bootstrap()
|