From 9d95c70ab194c252f5162deeaf136b540bed3076 Mon Sep 17 00:00:00 2001 From: Alberto Daniel Badia Date: Sat, 31 Jan 2026 15:03:07 -0300 Subject: [PATCH] FIX: Non lib settings not allowed - Added extra=ignore to MarketDataSettings model configuration in src/marketdata/settings.py to prevent validation errors with additional environment variables. - Added regression test test_settings_extra_env_vars in src/tests/test_client.py to ensure the SDK can be instantiated correctly in environments with multiple defined variables. --- src/marketdata/settings.py | 6 +++++- src/tests/test_client.py | 11 ++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/marketdata/settings.py b/src/marketdata/settings.py index 46ad5ca..c39750a 100644 --- a/src/marketdata/settings.py +++ b/src/marketdata/settings.py @@ -26,7 +26,11 @@ class MarketDataSettings(BaseSettings, UniversalParamsSettings): marketdata_api_version: str = "v1" marketdata_logging_level: str = "INFO" - model_config = ConfigDict(env_file=".env", env_file_encoding="utf-8") + model_config = ConfigDict( + env_file=".env", + env_file_encoding="utf-8", + extra="ignore", + ) settings = MarketDataSettings() diff --git a/src/tests/test_client.py b/src/tests/test_client.py index 9742d33..ec4223d 100644 --- a/src/tests/test_client.py +++ b/src/tests/test_client.py @@ -1,4 +1,5 @@ import datetime +import os from unittest.mock import patch import pytest @@ -15,7 +16,7 @@ from marketdata.internal_settings import NO_TOKEN_VALUE from marketdata.retry import get_retry_adapter from marketdata.sdk_error import MarketDataClientErrorResult -from marketdata.settings import settings +from marketdata.settings import MarketDataSettings, settings from marketdata.types import UserRateLimits from marketdata.utils import format_duration_log @@ -316,3 +317,11 @@ def test_client_pre_and_post_request_logs(client, respx_mock): mock_logger_info.call_args_list[0].assert_called_with( f"GET 200 000ms 1234567890 {last_request.request.url}" ) + + +def test_settings_extra_env_vars(): + with patch.dict( + os.environ, {"RANDOM_VAR_FOR_TESTING": "123", "MARKETDATA_TOKEN": "test_token"} + ): + settings = MarketDataSettings() + assert settings.marketdata_token == "test_token"