Files
PacketStation/tests/conftest.py
T

43 lines
1.2 KiB
Python
Raw Normal View History

"""Shared test setup: a clean environment with STACK=ci and no .env files picked up."""
from __future__ import annotations
import os
from collections.abc import Iterator
import pytest
_PREFIXES = ("PS_", "PG_", "LDAP_", "SMTP_", "VISUAL_", "MFILES_")
_NAMES = {
"STACK",
"SITE_ID",
"SITE_TZ",
"PUBLIC_URL",
"TRUSTED_PROXY_HOST",
"ASSETS_DIR",
"BACKUP_DIR",
"SESSION_KEY_FILE",
"SEAL_KEY_FILE",
"STATIC_DIR",
"LOG_LEVEL",
"NOTIFY_DRY_RUN",
"WORKER_BEAT_FILE",
}
@pytest.fixture(autouse=True)
def clean_env(monkeypatch: pytest.MonkeyPatch, tmp_path_factory: pytest.TempPathFactory) -> Iterator[None]:
for key in list(os.environ):
if key.upper() in _NAMES or key.upper().startswith(_PREFIXES):
monkeypatch.delenv(key, raising=False)
nowhere = tmp_path_factory.getbasetemp() / "no-such.env"
monkeypatch.setenv("VISUAL_ENV_FILE", str(nowhere))
monkeypatch.setenv("MFILES_ENV_FILE", str(nowhere))
monkeypatch.setenv("STACK", "ci")
monkeypatch.setenv("TRUSTED_PROXY_HOST", "")
from packetstation.settings import clear_settings_cache
clear_settings_cache()
yield
clear_settings_cache()