Skip to content

Commit 2e900be

Browse files
authored
Account for vision key only situation (#1192)
1 parent 8048b28 commit 2e900be

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

app/backend/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ async def setup_clients():
260260
key_vault_client = SecretClient(
261261
vault_url=f"https://{AZURE_KEY_VAULT_NAME}.vault.azure.net", credential=azure_credential
262262
)
263-
vision_key = (await key_vault_client.get_secret(VISION_SECRET_NAME)).value
264-
search_key = (await key_vault_client.get_secret(SEARCH_SECRET_NAME)).value
263+
vision_key = VISION_SECRET_NAME and (await key_vault_client.get_secret(VISION_SECRET_NAME)).value
264+
search_key = SEARCH_SECRET_NAME and (await key_vault_client.get_secret(SEARCH_SECRET_NAME)).value
265265
await key_vault_client.close()
266266

267267
# Set up clients for AI Search and Storage

tests/test_app_config.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
from unittest import mock
33

44
import pytest
5+
from azure.keyvault.secrets.aio import SecretClient
56

67
import app
78

9+
from .mocks import MockKeyVaultSecret
10+
811

912
@pytest.fixture
1013
def minimal_env(monkeypatch):
@@ -105,3 +108,39 @@ async def test_app_config_for_client(client):
105108
assert result["showGPT4VOptions"] == (os.getenv("USE_GPT4V") == "true")
106109
assert result["showSemanticRankerOption"] is True
107110
assert result["showVectorOption"] is True
111+
112+
113+
@pytest.mark.asyncio
114+
async def test_app_visionkey_notfound(monkeypatch, minimal_env):
115+
monkeypatch.setenv("AZURE_KEY_VAULT_NAME", "my_key_vault")
116+
monkeypatch.setenv("VISION_SECRET_NAME", "")
117+
monkeypatch.setenv("SEARCH_SECRET_NAME", "search-secret-name")
118+
119+
async def get_secret(*args, **kwargs):
120+
if args[1] == "vision-secret-name":
121+
raise Exception("Key not found")
122+
return MockKeyVaultSecret("mysecret")
123+
124+
monkeypatch.setattr(SecretClient, "get_secret", get_secret)
125+
126+
quart_app = app.create_app()
127+
async with quart_app.test_app() as test_app:
128+
test_app.test_client()
129+
130+
131+
@pytest.mark.asyncio
132+
async def test_app_searchkey_notfound(monkeypatch, minimal_env):
133+
monkeypatch.setenv("AZURE_KEY_VAULT_NAME", "my_key_vault")
134+
monkeypatch.setenv("VISION_SECRET_NAME", "vision-secret-name")
135+
monkeypatch.setenv("SEARCH_SECRET_NAME", "")
136+
137+
async def get_secret(*args, **kwargs):
138+
if args[1] == "search-secret-name":
139+
raise Exception("Key not found")
140+
return MockKeyVaultSecret("mysecret")
141+
142+
monkeypatch.setattr(SecretClient, "get_secret", get_secret)
143+
144+
quart_app = app.create_app()
145+
async with quart_app.test_app() as test_app:
146+
test_app.test_client()

0 commit comments

Comments
 (0)