Skip to content

Commit cfb8065

Browse files
committed
test: ✅ optimized next field pytest
1 parent 9fd7c67 commit cfb8065

File tree

2 files changed

+20
-25
lines changed

2 files changed

+20
-25
lines changed

tests/test_env_source.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

tests/test_settings.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3282,3 +3282,23 @@ class StrictSettings(BaseSettings, env_nested_delimiter='__', strict=True):
32823282
'my_int': 1,
32833283
},
32843284
}
3285+
3286+
3287+
def test_env_source_when_load_multi_nested_config(env):
3288+
class EmbeddingModel(BaseModel):
3289+
model: str = 'text-embedding-3-small'
3290+
keys: list[str] = Field(default_factory=list)
3291+
3292+
class LLM(BaseModel):
3293+
embeddings: dict[str, EmbeddingModel] = Field(default_factory=dict)
3294+
3295+
class LLMSettings(BaseSettings):
3296+
llm: LLM = Field(default_factory=lambda: LLM())
3297+
3298+
model_config = SettingsConfigDict(env_prefix='my_prefix_', env_nested_delimiter='__')
3299+
3300+
env.set('my_prefix_llm__embeddings__openai__keys', '["sk-..."]')
3301+
env.set('my_prefix_llm__embeddings__qwen__keys', '["sk-..."]')
3302+
llm_setting = LLMSettings()
3303+
assert llm_setting.llm.embeddings['openai'].keys == ['sk-...']
3304+
assert llm_setting.llm.embeddings['qwen'].keys == ['sk-...']

0 commit comments

Comments
 (0)