Skip to content

Commit 915928d

Browse files
committed
Add test
1 parent 50bf43d commit 915928d

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

pydantic_settings/sources/providers/azure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __init__(
5050
]
5151

5252
def __getitem__(self, key: str) -> str | None:
53-
if key not in self._loaded_secrets:
53+
if key not in self._loaded_secrets and key in self._secret_names:
5454
try:
5555
self._loaded_secrets[key] = self._secret_client.get_secret(key).value
5656
except Exception:

tests/test_source_azure_key_vault.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,33 @@ class AzureKeyVaultSettings(BaseSettings):
7878
assert settings['SqlServerUser'] == expected_secret_value
7979
assert settings['SqlServer']['Password'] == expected_secret_value
8080

81+
def test_do_not_load_disabled_secrets(self, mocker: MockerFixture) -> None:
82+
class AzureKeyVaultSettings(BaseSettings):
83+
"""AzureKeyVault settings."""
84+
85+
SqlServerPassword: str
86+
DisabledSqlServerPassword: str
87+
88+
disabled_secret_name = 'SqlServerPassword'
89+
expected_secrets = [
90+
type('', (), {'name': disabled_secret_name, 'enabled': False}),
91+
]
92+
mocker.patch(
93+
f'{AzureKeyVaultSettingsSource.__module__}.{SecretClient.list_properties_of_secrets.__qualname__}',
94+
return_value=expected_secrets,
95+
)
96+
mocker.patch(
97+
f'{AzureKeyVaultSettingsSource.__module__}.{SecretClient.get_secret.__qualname__}',
98+
return_value=KeyVaultSecret(SecretProperties(), 'SecretValue'),
99+
)
100+
obj = AzureKeyVaultSettingsSource(
101+
AzureKeyVaultSettings, 'https://my-resource.vault.azure.net/', DefaultAzureCredential()
102+
)
103+
104+
settings = obj()
105+
106+
assert disabled_secret_name not in settings
107+
81108
def test_azure_key_vault_settings_source(self, mocker: MockerFixture) -> None:
82109
"""Test AzureKeyVaultSettingsSource."""
83110

0 commit comments

Comments
 (0)