@@ -639,8 +639,27 @@ class SettingsDefaultsA(BaseSettings, env_nested_delimiter='__', nested_model_de
639639 nested_d : NestedC = NestedC (v0 = False , v1 = True )
640640 nested_c : NestedD = NestedD ()
641641
642+ assert SettingsDefaultsA ().model_dump () == {
643+ 'nested_a' : {'v0' : False , 'v1' : True },
644+ 'nested_b' : {'v0' : False , 'v1' : True },
645+ 'nested_c' : {'v0' : False , 'v1' : True },
646+ 'nested_d' : {'v0' : False , 'v1' : True },
647+ }
648+ assert SettingsDefaultsA ().model_dump (exclude_unset = True ) == {}
649+
642650 env .set ('NESTED_A__V0' , 'True' )
643651 env .set ('NESTED_B__V0' , 'True' )
652+ assert SettingsDefaultsA ().model_dump () == {
653+ 'nested_a' : {'v0' : True , 'v1' : True },
654+ 'nested_b' : {'v0' : True , 'v1' : True },
655+ 'nested_c' : {'v0' : False , 'v1' : True },
656+ 'nested_d' : {'v0' : False , 'v1' : True },
657+ }
658+ assert SettingsDefaultsA ().model_dump (exclude_unset = True ) == {
659+ 'nested_a' : {'v0' : True , 'v1' : True },
660+ 'nested_b' : {'v0' : True , 'v1' : True },
661+ }
662+
644663 env .set ('NESTED_C__V0' , 'True' )
645664 env .set ('NESTED_D__V0' , 'True' )
646665 assert SettingsDefaultsA ().model_dump () == {
@@ -649,6 +668,12 @@ class SettingsDefaultsA(BaseSettings, env_nested_delimiter='__', nested_model_de
649668 'nested_c' : {'v0' : True , 'v1' : True },
650669 'nested_d' : {'v0' : True , 'v1' : True },
651670 }
671+ assert SettingsDefaultsA ().model_dump (exclude_unset = True ) == {
672+ 'nested_a' : {'v0' : True , 'v1' : True },
673+ 'nested_b' : {'v0' : True , 'v1' : True },
674+ 'nested_c' : {'v0' : True , 'v1' : True },
675+ 'nested_d' : {'v0' : True , 'v1' : True },
676+ }
652677
653678
654679def test_init_kwargs_nested_model_default_partial_update (env ):
0 commit comments