from __future__ import annotations from content_automation.settings import AppSettings def test_settings_parse_nested_env(monkeypatch) -> None: monkeypatch.setenv("CONTENT_AUTOMATION_TARGET_SOCIAL_NETWORKS", '["youtube"]') monkeypatch.setenv("CONTENT_AUTOMATION_YOUTUBE__ACCESS_TOKEN", "yt-token") monkeypatch.setenv("CONTENT_AUTOMATION_YOUTUBE__USE_RESUMABLE_UPLOAD", "true") monkeypatch.setenv("CONTENT_AUTOMATION_STORAGE__BACKEND", "s3") monkeypatch.setenv("CONTENT_AUTOMATION_STORAGE__S3__BUCKET_NAME", "bucket-a") monkeypatch.setenv("CONTENT_AUTOMATION_MONGODB__ENABLED", "true") monkeypatch.setenv( "CONTENT_AUTOMATION_MONGODB__CONNECTION_URI", "mongodb://localhost:27017", ) monkeypatch.setenv( "CONTENT_AUTOMATION_MONGODB__DATABASE_NAME", "content-automation", ) settings = AppSettings() assert settings.target_social_networks == ["youtube"] assert settings.youtube.access_token == "yt-token" assert settings.youtube.use_resumable_upload is True assert settings.storage.backend == "s3" assert settings.storage.s3.bucket_name == "bucket-a" assert settings.mongodb.enabled is True assert settings.mongodb.connection_uri == "mongodb://localhost:27017" assert settings.mongodb.database_name == "content-automation"