aliases, fix #275, replace #282 (#286)

This commit is contained in:
Samuel Colvin
2018-11-15 12:01:05 +00:00
committed by GitHub
parent 15850a43c5
commit 64ada930fc
3 changed files with 15 additions and 1 deletions
+1 -1
View File
@@ -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()
+2
View File
@@ -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 []
+12
View File
@@ -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'