From 53a3920a829cac38993bcf6844e6056fb4a49d55 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Fri, 5 Jun 2026 19:24:26 +0200 Subject: [PATCH] fix(e2e): load .env after harness env defaults --- surfsense_backend/tests/e2e/run_backend.py | 7 +++++-- surfsense_backend/tests/e2e/run_celery.py | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/surfsense_backend/tests/e2e/run_backend.py b/surfsense_backend/tests/e2e/run_backend.py index c6e22c8aa..87977626f 100644 --- a/surfsense_backend/tests/e2e/run_backend.py +++ b/surfsense_backend/tests/e2e/run_backend.py @@ -72,8 +72,6 @@ def _load_dotenv_and_set_env_defaults() -> None: """ from dotenv import load_dotenv - load_dotenv() - os.environ.setdefault( "DATABASE_URL", "postgresql+asyncpg://postgres:postgres@localhost:5432/surfsense", @@ -138,6 +136,11 @@ def _load_dotenv_and_set_env_defaults() -> None: os.environ["SLACK_CLIENT_ID"] = "fake-slack-mcp-client-id" os.environ["SLACK_CLIENT_SECRET"] = "fake-slack-mcp-client-secret" + # Load .env last so the E2E defaults above win over a developer's .env + # (e.g. AUTH_TYPE=GOOGLE), while an explicitly exported shell var still + # beats both: setdefault respects it and load_dotenv() never overrides. + load_dotenv() + def _install_synthetic_global_llm_config() -> None: """Materialise a fake ``app/config/global_llm_config.yaml`` for E2E. diff --git a/surfsense_backend/tests/e2e/run_celery.py b/surfsense_backend/tests/e2e/run_celery.py index 32e35acb6..bde547083 100644 --- a/surfsense_backend/tests/e2e/run_celery.py +++ b/surfsense_backend/tests/e2e/run_celery.py @@ -57,8 +57,6 @@ def _load_dotenv_and_set_env_defaults() -> None: """ from dotenv import load_dotenv - load_dotenv() - os.environ.setdefault( "DATABASE_URL", "postgresql+asyncpg://postgres:postgres@localhost:5432/surfsense", @@ -122,6 +120,11 @@ def _load_dotenv_and_set_env_defaults() -> None: os.environ["SLACK_CLIENT_ID"] = "fake-slack-mcp-client-id" os.environ["SLACK_CLIENT_SECRET"] = "fake-slack-mcp-client-secret" + # Load .env last so the E2E defaults above win over a developer's .env + # (e.g. AUTH_TYPE=GOOGLE), while an explicitly exported shell var still + # beats both: setdefault respects it and load_dotenv() never overrides. + load_dotenv() + def _install_synthetic_global_llm_config() -> None: """Materialise a fake ``app/config/global_llm_config.yaml`` for E2E.