from __future__ import annotations from pydantic import ValidationError import pytest from pytest import MonkeyPatch from core.config.settings import Settings def test_social_prefixed_storage_env_populates_settings( monkeypatch: MonkeyPatch, ) -> None: monkeypatch.setenv("SOCIAL_STORAGE__PROVIDER", "supabase") monkeypatch.setenv("SOCIAL_STORAGE__BUCKET", "agent-chat-attachments") monkeypatch.setenv("SOCIAL_STORAGE__SIGNED_URL_TTL_SECONDS", "900") monkeypatch.setenv("SOCIAL_STORAGE__MAX_FILE_SIZE_MB", "25") monkeypatch.setenv("SOCIAL_STORAGE__RETENTION_DAYS", "45") settings = Settings() assert settings.storage.provider == "supabase" assert settings.storage.bucket == "agent-chat-attachments" assert settings.storage.signed_url_ttl_seconds == 900 assert settings.storage.max_file_size_mb == 25 assert settings.storage.retention_days == 45 def test_storage_settings_validation_rejects_invalid_provider( monkeypatch: MonkeyPatch, ) -> None: monkeypatch.setenv("SOCIAL_STORAGE__PROVIDER", "s3") with pytest.raises(ValidationError): Settings()