43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""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()
|