mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
@@ -37,7 +37,7 @@ class BaseSettings(BaseModel):
|
||||
"""
|
||||
d = {}
|
||||
for field in self.__fields__.values():
|
||||
if field.alt_alias:
|
||||
if field.has_alias:
|
||||
env_name = field.alias
|
||||
else:
|
||||
env_name = self.__config__.env_prefix + field.name.upper()
|
||||
|
||||
@@ -62,6 +62,7 @@ class Field:
|
||||
'model_config',
|
||||
'name',
|
||||
'alias',
|
||||
'has_alias',
|
||||
'_schema',
|
||||
'validate_always',
|
||||
'allow_none',
|
||||
@@ -85,6 +86,7 @@ class Field:
|
||||
):
|
||||
|
||||
self.name: str = name
|
||||
self.has_alias: bool = bool(alias)
|
||||
self.alias: str = alias or name
|
||||
self.type_: type = type_
|
||||
self.class_validators = class_validators or []
|
||||
|
||||
@@ -98,3 +98,15 @@ def test_non_class(env):
|
||||
env.set('APP_FOOBAR', 'xxx')
|
||||
s = Settings()
|
||||
assert s.foobar == 'xxx'
|
||||
|
||||
|
||||
def test_alias_matches_name(env):
|
||||
class Settings(BaseSettings):
|
||||
foobar: str
|
||||
|
||||
class Config:
|
||||
fields = {'foobar': 'foobar'}
|
||||
|
||||
env.set('foobar', 'xxx')
|
||||
s = Settings()
|
||||
assert s.foobar == 'xxx'
|
||||
|
||||
Reference in New Issue
Block a user