Spaces:
Sleeping
Sleeping
| import os | |
| from typing import List | |
| from unittest import mock | |
| import pytest | |
| import openai | |
| from openai.types.chat.chat_completion_message_param import ChatCompletionMessageParam | |
| import llm_handler.openai_handler as openai_handler | |
| # Clear openai.api_key before each test | |
| def test_env_setup(): | |
| openai.api_key = None | |
| # This allows us to clear the OPENAI_API_KEY before any test we want | |
| def mock_settings_env_vars(): | |
| with mock.patch.dict(os.environ, clear=True): | |
| yield | |
| # Define some constants for our tests | |
| _TEST_KEY: str = "TEST_KEY" | |
| _TEST_MESSAGE: str = "Hello how are you?" | |
| _TEST_MESSAGE_FOR_CHAT_COMPLETION: List[ChatCompletionMessageParam] = [ | |
| { | |
| "role": "system", "content": "You are serving as a en endpoint to verify a test." | |
| }, { | |
| "role": "user", "content": "Respond with something to help us verify our code is working." | |
| } | |
| ] | |
| _TEXT_EMBEDDING_SMALL_3_LENGTH: int = 1536 | |
| def test_init_without_key(mock_settings_env_vars): | |
| # Ensure key not set as env var and openai.api_key not set | |
| with pytest.raises(KeyError): | |
| os.environ[openai_handler.OpenAIHandler._ENV_KEY_NAME] | |
| assert openai.api_key == None | |
| # Ensure proper exception raised when instantiating handler without key as param or env var | |
| with pytest.raises(ValueError) as excinfo: | |
| openai_handler.OpenAIHandler() | |
| assert f'{openai_handler.OpenAIHandler._ENV_KEY_NAME} not set' in str(excinfo.value) | |
| assert openai.api_key == None | |
| def test_init_with_key_as_param(): | |
| # Ensure key is set as env var, key value is unique from _TEST_KEY, and openai.api_key not set | |
| assert not os.environ[openai_handler.OpenAIHandler._ENV_KEY_NAME] == _TEST_KEY | |
| assert openai.api_key == None | |
| # Ensure successful instantiation and openai.api_key properly set | |
| handler = openai_handler.OpenAIHandler(openai_api_key=_TEST_KEY) | |
| assert isinstance(handler, openai_handler.OpenAIHandler) | |
| assert openai.api_key == _TEST_KEY | |
| def test_init_with_key_as_env_var(mock_settings_env_vars): | |
| # Ensure key not set as env var and openai.api_key not set | |
| with pytest.raises(KeyError): | |
| os.environ[openai_handler.OpenAIHandler._ENV_KEY_NAME] | |
| assert openai.api_key == None | |
| # Set key as env var | |
| os.environ.setdefault(openai_handler.OpenAIHandler._ENV_KEY_NAME, _TEST_KEY) | |
| # Ensure successful instantiation and openai.api_key properly set | |
| handler = openai_handler.OpenAIHandler() | |
| assert isinstance(handler, openai_handler.OpenAIHandler) | |
| assert openai.api_key == _TEST_KEY |