Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch to majority entra auth for tests #35581

Merged
merged 21 commits into from
Jun 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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"),
xiangyan99 marked this conversation as resolved.
Show resolved Hide resolved
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