@@ -46,14 +46,13 @@ def test___call__(self, mocker: MockerFixture) -> None:
4646 """Test __call__."""
4747
4848 class SqlServer (BaseModel ):
49- password : str = Field (..., alias = 'Password' )
49+ password : str
5050
5151 class AzureKeyVaultSettings (BaseSettings ):
5252 """AzureKeyVault settings."""
5353
54- SqlServerUser : str
55- sql_server_user : str = Field (..., alias = 'SqlServerUser' )
56- sql_server : SqlServer = Field (..., alias = 'SqlServer' )
54+ sql_server_user : str
55+ sql_server : SqlServer
5756
5857 expected_secrets = [
5958 type ('' , (), {'name' : 'SqlServerUser' , 'enabled' : True }),
@@ -74,14 +73,14 @@ class AzureKeyVaultSettings(BaseSettings):
7473
7574 settings = obj ()
7675
77- assert settings ['SqlServerUser ' ] == expected_secret_value
78- assert settings ['SqlServer ' ]['Password ' ] == expected_secret_value
76+ assert settings ['sql_server_user ' ] == expected_secret_value
77+ assert settings ['sql_server ' ]['password ' ] == expected_secret_value
7978
8079 def test_do_not_load_disabled_secrets (self , mocker : MockerFixture ) -> None :
8180 class AzureKeyVaultSettings (BaseSettings ):
8281 """AzureKeyVault settings."""
8382
84- SqlServerPassword : str
83+ sql_server_password : str
8584 DisabledSqlServerPassword : str
8685
8786 disabled_secret_name = 'SqlServerPassword'
@@ -108,14 +107,13 @@ def test_azure_key_vault_settings_source(self, mocker: MockerFixture) -> None:
108107 """Test AzureKeyVaultSettingsSource."""
109108
110109 class SqlServer (BaseModel ):
111- password : str = Field (..., alias = 'Password' )
110+ password : str
112111
113112 class AzureKeyVaultSettings (BaseSettings ):
114113 """AzureKeyVault settings."""
115114
116- SqlServerUser : str
117- sql_server_user : str = Field (..., alias = 'SqlServerUser' )
118- sql_server : SqlServer = Field (..., alias = 'SqlServer' )
115+ sql_server_user : str
116+ sql_server : SqlServer
119117
120118 @classmethod
121119 def settings_customise_sources (
@@ -148,7 +146,6 @@ def settings_customise_sources(
148146
149147 settings = AzureKeyVaultSettings () # type: ignore
150148
151- assert settings .SqlServerUser == expected_secret_value
152149 assert settings .sql_server_user == expected_secret_value
153150 assert settings .sql_server .password == expected_secret_value
154151
@@ -161,12 +158,17 @@ def _raise_resource_not_found_when_getting_parent_secret_name(self, secret_name:
161158
162159 return key_vault_secret
163160
164- def test_dash_to_underscore_translation (self , mocker : MockerFixture ) -> None :
165- """Test that dashes in secret names are mapped to underscores in field names."""
161+ def test_snake_case_translation (self , mocker : MockerFixture ) -> None :
162+ """Test that secret names are mapped to snake case in field names."""
163+
164+ class NestedModel (BaseModel ):
165+ nested_field : str
166166
167167 class AzureKeyVaultSettings (BaseSettings ):
168168 my_field : str
169- alias_field : str = Field (..., alias = 'Secret-Alias' )
169+ alias_field : str = Field (alias = 'Secret-Alias' )
170+ alias_field_2 : str = Field (alias = 'another-SECRET-AliaS' )
171+ nested_model : NestedModel
170172
171173 @classmethod
172174 def settings_customise_sources (
@@ -182,13 +184,14 @@ def settings_customise_sources(
182184 settings_cls ,
183185 'https://my-resource.vault.azure.net/' ,
184186 DefaultAzureCredential (),
185- dash_to_underscore = True ,
186187 ),
187188 )
188189
189190 expected_secrets = [
190191 type ('' , (), {'name' : 'my-field' , 'enabled' : True }),
191192 type ('' , (), {'name' : 'Secret-Alias' , 'enabled' : True }),
193+ type ('' , (), {'name' : 'another-SECRET-AliaS' , 'enabled' : True }),
194+ type ('' , (), {'name' : 'NestedModel--NestedField' , 'enabled' : True }),
192195 ]
193196 expected_secret_value = 'SecretValue'
194197
@@ -205,3 +208,5 @@ def settings_customise_sources(
205208
206209 assert settings .my_field == expected_secret_value
207210 assert settings .alias_field == expected_secret_value
211+ assert settings .alias_field_2 == expected_secret_value
212+ assert settings .nested_model .nested_field == expected_secret_value
0 commit comments