refactor env proposal

This commit is contained in:
leo
2026-03-17 11:43:15 +01:00
parent 8fc7ccf33e
commit 873cc083ab
10 changed files with 73 additions and 72 deletions
+3 -22
View File
@@ -2,25 +2,6 @@
import os
# Set required environment variables before any summary module imports.
# This is necessary because several modules call get_settings() at module level,
# which validates env vars via Pydantic Settings.
os.environ.setdefault("APP_API_TOKEN", "test-api-token")
os.environ.setdefault("AWS_STORAGE_BUCKET_NAME", "test-bucket")
os.environ.setdefault("AWS_S3_ENDPOINT_URL", "http://localhost:9000")
os.environ.setdefault("AWS_S3_ACCESS_KEY_ID", "test-access-key")
os.environ.setdefault("AWS_S3_SECRET_ACCESS_KEY", "test-secret-key")
os.environ.setdefault("AWS_S3_SECURE_ACCESS", "false")
os.environ.setdefault("WHISPERX_API_KEY", "test-whisperx-key")
os.environ.setdefault("WHISPERX_BASE_URL", "http://localhost:8000/v1")
os.environ.setdefault("LLM_BASE_URL", "http://localhost:8001/v1")
os.environ.setdefault("LLM_API_KEY", "test-llm-key")
os.environ.setdefault("LLM_MODEL", "test-model")
os.environ.setdefault("WEBHOOK_API_TOKEN", "test-webhook-token")
os.environ.setdefault("WEBHOOK_URL", "http://localhost:8002/webhook")
os.environ.setdefault("CELERY_BROKER_URL", "memory://")
os.environ.setdefault("CELERY_RESULT_BACKEND", "cache+memory://")
os.environ.setdefault("POSTHOG_ENABLED", "false")
os.environ.setdefault("SENTRY_IS_ENABLED", "false")
os.environ.setdefault("LANGFUSE_ENABLED", "false")
os.environ.setdefault("TASK_TRACKER_REDIS_URL", "redis://localhost:6379/0")
# Activate TestSettings (safe defaults for all required env vars)
# before any summary module is imported.
os.environ["SUMMARY_ENV"] = "test"
@@ -9,11 +9,11 @@ import responses
from summary.core.config import get_settings
settings = get_settings()
API_PREFIX = "/api/v1"
AUTH_HEADER = {"Authorization": f"Bearer {settings.app_api_token.get_secret_value()}"}
WEBHOOK_URL = settings.webhook_url
AUTH_HEADER = {
"Authorization": f"Bearer {get_settings().app_api_token.get_secret_value()}"
}
WEBHOOK_URL = get_settings().webhook_url
class TestTranscribeSummarizeFlow:
+2 -4
View File
@@ -16,9 +16,7 @@ from summary.core.celery_worker import (
from summary.core.config import get_settings
from summary.core.file_service import FileServiceException
settings = get_settings()
WEBHOOK_URL = settings.webhook_url
WEBHOOK_URL = get_settings().webhook_url
# ---------------------------------------------------------------------------
# transcribe_audio
@@ -241,7 +239,7 @@ class TestSummarizeTranscription:
# Verify auth header was sent
assert (
webhook_request.request.headers["Authorization"]
== f"Bearer {settings.webhook_api_token.get_secret_value()}"
== f"Bearer {get_settings().webhook_api_token.get_secret_value()}"
)
# LLM was called for: tldr, plan, part A, part B, next-steps, cleaning