@@ -647,43 +647,6 @@ def settings_customise_sources(
647
647
assert s .bar == 'env setting'
648
648
649
649
650
- def test_env_deep_override (env ):
651
- class DeepSubModel (BaseModel ):
652
- v4 : str
653
-
654
- class SubModel (BaseModel ):
655
- v1 : str
656
- v2 : bytes
657
- v3 : int
658
- deep : DeepSubModel
659
-
660
- class Settings (BaseSettings , env_nested_delimiter = '__' ):
661
- v0 : str
662
- sub_model : SubModel
663
-
664
- @classmethod
665
- def settings_customise_sources (
666
- cls , settings_cls , init_settings , env_settings , dotenv_settings , file_secret_settings
667
- ):
668
- return env_settings , dotenv_settings , init_settings , file_secret_settings
669
-
670
- env .set ('SUB_MODEL__DEEP__V4' , 'override-v4' )
671
-
672
- s_final = {'v0' : '0' , 'sub_model' : {'v1' : 'init-v1' , 'v2' : b'init-v2' , 'v3' : 3 , 'deep' : {'v4' : 'override-v4' }}}
673
-
674
- s = Settings (v0 = '0' , sub_model = {'v1' : 'init-v1' , 'v2' : b'init-v2' , 'v3' : 3 , 'deep' : {'v4' : 'init-v4' }})
675
- assert s .model_dump () == s_final
676
-
677
- s = Settings (v0 = '0' , sub_model = SubModel (v1 = 'init-v1' , v2 = b'init-v2' , v3 = 3 , deep = DeepSubModel (v4 = 'init-v4' )))
678
- assert s .model_dump () == s_final
679
-
680
- s = Settings (v0 = '0' , sub_model = SubModel (v1 = 'init-v1' , v2 = b'init-v2' , v3 = 3 , deep = {'v4' : 'init-v4' }))
681
- assert s .model_dump () == s_final
682
-
683
- s = Settings (v0 = '0' , sub_model = {'v1' : 'init-v1' , 'v2' : b'init-v2' , 'v3' : 3 , 'deep' : DeepSubModel (v4 = 'init-v4' )})
684
- assert s .model_dump () == s_final
685
-
686
-
687
650
def test_config_file_settings_nornir (env ):
688
651
"""
689
652
See https://github.com/pydantic/pydantic/pull/341#issuecomment-450378771
0 commit comments