Skip to content

Commit 534512d

Browse files
committed
test: ✅ add test for next field
1 parent c56f430 commit 534512d

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

tests/test_env_source.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from pydantic import BaseModel, Field
2+
3+
from pydantic_settings import BaseSettings, SettingsConfigDict
4+
5+
6+
def test_env_source_when_load_multi_nested_config(env):
7+
# export my_prefix_llm__embeddings__openai__keys='["sk-..."]'
8+
# export my_prefix_llm__embeddings__qwen__keys='["sk-..."]'
9+
class EmbeddingModel(BaseModel):
10+
model: str = 'text-embedding-3-small'
11+
keys: list[str] = Field(default_factory=list)
12+
13+
class LLM(BaseModel):
14+
embeddings: dict[str, EmbeddingModel] = Field(default_factory=dict)
15+
16+
class LLMSettings(BaseSettings):
17+
llm: LLM = Field(default_factory=lambda: LLM())
18+
19+
model_config = SettingsConfigDict(env_prefix='my_prefix_', env_nested_delimiter='__')
20+
21+
env.set('my_prefix_llm__embeddings__openai__keys', '["sk-..."]')
22+
env.set('my_prefix_llm__embeddings__qwen__keys', '["sk-..."]')
23+
llm_setting = LLMSettings()
24+
assert llm_setting.llm.embeddings['openai'].keys == ['sk-...']
25+
assert llm_setting.llm.embeddings['qwen'].keys == ['sk-...']

0 commit comments

Comments
 (0)