Skip to content

Commit

Permalink
switch to majority entra auth for tests (#35581)
Browse files Browse the repository at this point in the history
* switch to majority defaultazurecredential auth for tests

* test run

* don't use optional for test run

* try

* fix

* remove

* fix import

* try

* try different connection

* update subconfig

* byod uses system_assigned_managed_identity

* remove azure key where not using

* typo

* add azure-sdk-tests values to subconfig

* explicitly state model for byod tests

* add back optional env and remove skips

* push missed files

* move subconfig to service directory for now

* fix path after moving subconfig

* simplify
  • Loading branch information
kristapratico authored Jun 6, 2024
1 parent 8c581a2 commit 72919a9
Show file tree
Hide file tree
Showing 20 changed files with 143 additions and 137 deletions.
61 changes: 15 additions & 46 deletions sdk/openai/azure-openai/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,27 +25,20 @@

AZURE = "azure"
OPENAI = "openai"
AZURE_AD = "azuread"
AZURE_KEY = "azure_key"
WHISPER_AZURE = "whisper_azure"
WHISPER_AZURE_AD = "whisper_azuread"
TTS_OPENAI = "tts_openai"
TTS_AZURE = "tts_azure"
TTS_AZURE_AD = "tts_azuread"
DALLE_AZURE = "dalle_azure"
DALLE_AZURE_AD = "dalle_azuread"
GPT_4_AZURE = "gpt_4_azure"
GPT_4_AZURE_AD = "gpt_4_azuread"
GPT_4_OPENAI = "gpt_4_openai"
ASST_AZURE = "asst_azure"
ASST_AZUREAD = "asst_azuread"

# Environment variable keys
ENV_AZURE_OPENAI_ENDPOINT = "AZ_OPENAI_ENDPOINT"
ENV_AZURE_OPENAI_KEY = "AZURE_OPENAI_KEY"
ENV_AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT = "AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT"
ENV_AZURE_OPENAI_NORTHCENTRALUS_KEY = "AZURE_OPENAI_NORTHCENTRALUS_KEY"
ENV_AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT = "AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT"
ENV_AZURE_OPENAI_SWEDENCENTRAL_KEY = "AZURE_OPENAI_SWEDENCENTRAL_KEY"
ENV_SUBSCRIPTION_ID = "AZURE_SUBSCRIPTION_ID"
ENV_TENANT_ID = "AZURE_TENANT_ID"
ENV_CLIENT_ID = "AZURE_CLIENT_ID"
Expand Down Expand Up @@ -77,38 +70,26 @@ def client(api_type, api_version):
if api_type == "azure":
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_KEY),
azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_version=api_version,
)
elif api_type == "azuread":
elif api_type == "azure_key":
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_key=os.getenv(ENV_AZURE_OPENAI_KEY),
api_version=api_version,
)
elif api_type in ["openai", "gpt_4_openai", "tts_openai"]:
client = openai.OpenAI(
api_key=os.getenv(ENV_OPENAI_KEY)
)
elif api_type in ["whisper_azure", "tts_azure"]:
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_KEY),
api_version=api_version,
)
elif api_type in ["whisper_azuread", "tts_azuread"]:
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_version=api_version,
)
elif api_type in ["dalle_azure", "gpt_4_azure", "asst_azure"]:
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_KEY),
api_version=api_version,
)
elif api_type in ["dalle_azuread", "gpt_4_azuread", "asst_azuread"]:
client = openai.AzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
Expand All @@ -122,38 +103,26 @@ def client_async(api_type, api_version):
if api_type == "azure":
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_KEY),
azure_ad_token_provider=get_bearer_token_provider_async(AsyncDefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_version=api_version,
)
elif api_type == "azuread":
elif api_type == "azure_key":
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider_async(AsyncDefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_key=os.getenv(ENV_AZURE_OPENAI_KEY),
api_version=api_version,
)
elif api_type in ["openai", "gpt_4_openai", "tts_openai"]:
client = openai.AsyncOpenAI(
api_key=os.getenv(ENV_OPENAI_KEY)
)
elif api_type in ["whisper_azure", "tts_azure"]:
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_KEY),
api_version=api_version,
)
elif api_type in ["whisper_azuread", "tts_azuread"]:
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_NORTHCENTRALUS_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider_async(AsyncDefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
api_version=api_version,
)
elif api_type in ["dalle_azure", "gpt_4_azure", "asst_azure"]:
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT),
api_key=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_KEY),
api_version=api_version,
)
elif api_type in ["dalle_azuread", "gpt_4_azuread", "asst_azuread"]:
client = openai.AsyncAzureOpenAI(
azure_endpoint=os.getenv(ENV_AZURE_OPENAI_SWEDENCENTRAL_ENDPOINT),
azure_ad_token_provider=get_bearer_token_provider_async(AsyncDefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
Expand All @@ -165,41 +134,41 @@ def client_async(api_type, api_version):
def build_kwargs(args, api_type):
test_feature = args[0].qualified_test_name
if test_feature.startswith("test_audio"):
if api_type in ["whisper_azure", "whisper_azuread"]:
if api_type in ["whisper_azure"]:
return {"model": ENV_AZURE_OPENAI_AUDIO_NAME}
elif api_type == "openai":
return {"model": ENV_OPENAI_AUDIO_MODEL}
elif api_type == "tts_openai":
return {"model": ENV_OPENAI_TTS_MODEL}
elif api_type in ["tts_azure", "tts_azuread"]:
elif api_type in ["tts_azure"]:
return {"model": ENV_AZURE_OPENAI_TTS_NAME}
if test_feature.startswith("test_chat_completions") \
or test_feature.startswith(("test_client", "test_models")):
if api_type in ["azure", "azuread", "asst_azure"]:
if api_type in ["azure", "azure_key", "asst_azure"]:
return {"model": ENV_AZURE_OPENAI_CHAT_COMPLETIONS_NAME}
elif api_type == "openai":
return {"model": ENV_OPENAI_CHAT_COMPLETIONS_MODEL}
elif api_type in ["gpt_4_azure", "gpt_4_azuread"]:
elif api_type in ["gpt_4_azure"]:
return {"model": ENV_AZURE_OPENAI_CHAT_COMPLETIONS_GPT4_NAME}
elif api_type == "gpt_4_openai":
return {"model": ENV_OPENAI_CHAT_COMPLETIONS_GPT4_MODEL}
if test_feature.startswith("test_completions"):
if api_type in ["azure", "azuread"]:
if api_type == "azure":
return {"model": ENV_AZURE_OPENAI_COMPLETIONS_NAME}
elif api_type == "openai":
return {"model": ENV_OPENAI_COMPLETIONS_MODEL}
if test_feature.startswith("test_embeddings"):
if api_type in ["azure", "azuread"]:
if api_type == "azure":
return {"model": ENV_AZURE_OPENAI_EMBEDDINGS_NAME}
elif api_type == "openai":
return {"model": ENV_OPENAI_EMBEDDINGS_MODEL}
if test_feature.startswith("test_dall_e"):
if api_type in ["dalle_azure", "dalle_azuread"]:
if api_type in ["dalle_azure"]:
return {"model": ENV_AZURE_OPENAI_DALLE_NAME}
elif api_type == "openai":
return {"model": ENV_OPENAI_DALLE_MODEL}
if test_feature.startswith("test_assistants"):
if api_type in ["asst_azure", "asst_azuread"]:
if api_type in ["asst_azure"]:
return {"model": ENV_AZURE_OPENAI_CHAT_COMPLETIONS_GPT4_NAME}
elif api_type == "gpt_4_openai":
return {"model": ENV_OPENAI_CHAT_COMPLETIONS_GPT4_MODEL}
Expand Down
5 changes: 3 additions & 2 deletions sdk/openai/azure-openai/tests/test_assistants.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@
import pathlib
import uuid
from devtools_testutils import AzureRecordedTestCase
from conftest import ASST_AZURE, ASST_AZUREAD, PREVIEW, GPT_4_OPENAI, configure
from conftest import ASST_AZURE, PREVIEW, GPT_4_OPENAI, configure

TIMEOUT = 300


class TestAssistants(AzureRecordedTestCase):

@configure
@pytest.mark.parametrize(
"api_type, api_version",
[(ASST_AZURE, PREVIEW), (ASST_AZUREAD, PREVIEW), (GPT_4_OPENAI, "v1")]
[(ASST_AZURE, PREVIEW), (GPT_4_OPENAI, "v1")]
)
def test_assistants_crud(self, client, api_type, api_version, **kwargs):

Expand Down
5 changes: 3 additions & 2 deletions sdk/openai/azure-openai/tests/test_assistants_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,18 @@
import pathlib
import uuid
from devtools_testutils import AzureRecordedTestCase
from conftest import ASST_AZURE, ASST_AZUREAD, PREVIEW, GPT_4_OPENAI, configure_async
from conftest import ASST_AZURE, PREVIEW, GPT_4_OPENAI, configure_async

TIMEOUT = 300


class TestAssistantsAsync(AzureRecordedTestCase):

@configure_async
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(ASST_AZURE, PREVIEW), (ASST_AZUREAD, PREVIEW), (GPT_4_OPENAI, "v1")]
[(ASST_AZURE, PREVIEW), (GPT_4_OPENAI, "v1")]
)
async def test_assistants_crud(self, client_async, api_type, api_version, **kwargs):
try:
Expand Down
9 changes: 5 additions & 4 deletions sdk/openai/azure-openai/tests/test_audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@
import pathlib
import uuid
from devtools_testutils import AzureRecordedTestCase
from conftest import WHISPER_AZURE, OPENAI, WHISPER_AZURE_AD, PREVIEW, GA, configure, TTS_OPENAI, TTS_AZURE, TTS_AZURE_AD
from conftest import WHISPER_AZURE, OPENAI, PREVIEW, GA, configure, TTS_OPENAI, TTS_AZURE

audio_test_file = pathlib.Path(__file__).parent / "./assets/hello.m4a"
audio_long_test_file = pathlib.Path(__file__).parent / "./assets/wikipediaOcelot.wav"


class TestAudio(AzureRecordedTestCase):

@configure
@pytest.mark.parametrize(
"api_type, api_version",
[(WHISPER_AZURE, GA), (WHISPER_AZURE_AD, GA), (WHISPER_AZURE, PREVIEW), (WHISPER_AZURE_AD, PREVIEW), (OPENAI, "v1")]
[(WHISPER_AZURE, GA), (WHISPER_AZURE, PREVIEW), (OPENAI, "v1")]
)
def test_transcribe(self, client, api_type, api_version, **kwargs):

Expand All @@ -43,7 +44,7 @@ def test_transcribe_raw(self, client, api_type, api_version, **kwargs):
@configure
@pytest.mark.parametrize(
"api_type, api_version",
[(WHISPER_AZURE, GA), (WHISPER_AZURE_AD, GA), (WHISPER_AZURE, PREVIEW), (WHISPER_AZURE_AD, PREVIEW), (OPENAI, "v1")]
[(WHISPER_AZURE, GA), (WHISPER_AZURE, PREVIEW), (OPENAI, "v1")]
)
def test_translate(self, client, api_type, api_version, **kwargs):

Expand Down Expand Up @@ -223,7 +224,7 @@ def test_translate_options(self, client, api_type, api_version, **kwargs):
@configure
@pytest.mark.parametrize(
"api_type, api_version",
[(TTS_AZURE, PREVIEW), (TTS_AZURE_AD, PREVIEW), (TTS_OPENAI, "v1")]
[(TTS_AZURE, PREVIEW), (TTS_OPENAI, "v1")]
)
def test_tts(self, client, api_type, api_version, **kwargs):

Expand Down
8 changes: 4 additions & 4 deletions sdk/openai/azure-openai/tests/test_audio_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import pathlib
import uuid
from devtools_testutils import AzureRecordedTestCase
from conftest import WHISPER_AZURE, OPENAI, WHISPER_AZURE_AD, PREVIEW, GA, configure_async, TTS_OPENAI, TTS_AZURE, TTS_AZURE_AD
from conftest import WHISPER_AZURE, OPENAI, PREVIEW, GA, configure_async, TTS_OPENAI, TTS_AZURE

audio_test_file = pathlib.Path(__file__).parent / "./assets/hello.m4a"
audio_long_test_file = pathlib.Path(__file__).parent / "./assets/wikipediaOcelot.wav"
Expand All @@ -20,7 +20,7 @@ class TestAudioAsync(AzureRecordedTestCase):
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(WHISPER_AZURE, GA), (WHISPER_AZURE_AD, GA), (WHISPER_AZURE, PREVIEW), (WHISPER_AZURE_AD, PREVIEW), (OPENAI, "v1")]
[(WHISPER_AZURE, GA), (WHISPER_AZURE, PREVIEW), (OPENAI, "v1")]
)
async def test_transcribe(self, client_async, api_type, api_version, **kwargs):

Expand All @@ -47,7 +47,7 @@ async def test_transcribe_raw(self, client_async, api_type, api_version, **kwarg
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(WHISPER_AZURE, GA), (WHISPER_AZURE_AD, GA), (WHISPER_AZURE, PREVIEW), (WHISPER_AZURE_AD, PREVIEW), (OPENAI, "v1")]
[(WHISPER_AZURE, GA), (WHISPER_AZURE, PREVIEW), (OPENAI, "v1")]
)
async def test_translate(self, client_async, api_type, api_version, **kwargs):

Expand Down Expand Up @@ -239,7 +239,7 @@ async def test_translate_options(self, client_async, api_type, api_version, **kw
@pytest.mark.asyncio
@pytest.mark.parametrize(
"api_type, api_version",
[(TTS_AZURE, PREVIEW), (TTS_AZURE_AD, PREVIEW), (TTS_OPENAI, "v1")]
[(TTS_AZURE, PREVIEW), (TTS_OPENAI, "v1")]
)
async def test_tts(self, client_async, api_type, api_version, **kwargs):

Expand Down
Loading

0 comments on commit 72919a9

Please sign in to comment.