"""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()