File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -982,7 +982,7 @@ def __call__(self) -> dict[str, Any]:
982982 # As `extra` config is allowed in dotenv settings source, We have to
983983 # update data with extra env variables from dotenv file.
984984 for env_name , env_value in self .env_vars .items ():
985- if not env_value :
985+ if not env_value or env_name in data :
986986 continue
987987 env_used = False
988988 for field_name , field in self .settings_cls .model_fields .items ():
Original file line number Diff line number Diff line change @@ -2715,3 +2715,20 @@ class Settings(BaseSettings):
27152715
27162716 s = Settings ()
27172717 assert s .model_dump () == {'not_nested' : 'works' , 'NESTED' : {'A' : 'fails' , 'b' : 2 }}
2718+
2719+
2720+ def test_dotenv_env_prefix_env_without_prefix (tmp_path ):
2721+ p = tmp_path / '.env'
2722+ p .write_text ('test_foo=test-foo\n foo=foo' )
2723+
2724+ class Settings (BaseSettings ):
2725+ model_config = SettingsConfigDict (
2726+ env_file = p ,
2727+ env_prefix = 'TEST_' ,
2728+ extra = 'ignore' ,
2729+ )
2730+
2731+ foo : str
2732+
2733+ s = Settings ()
2734+ assert s .model_dump () == {'foo' : 'test-foo' }
You can’t perform that action at this time.
0 commit comments