import os import pytest from unittest.mock import Mock, patch, MagicMock from app import generate_prompt TEST_SYSTEM_PROMPT = "PROMPT ROULETTE ..." TEST_OPENAI_API_KEY = "sk-prompt-roulette-..." TEST_OPENAI_CHAT_RESPONSE_CONTENT = "You are ..." TEST_GRADIO_SESSION_HASH = "prompt-roulette-session-..." class TestGeneratePrompt: @patch("app.OpenAI") @patch.dict(os.environ, { "SYSTEM_PROMPT": TEST_SYSTEM_PROMPT, "OPENAI_API_KEY": TEST_OPENAI_API_KEY }) def test_generate_prompt_success(self, mock_openai_class): """Test a successful OpenAI API call.""" # Mock the OpenAI client and response mock_client = Mock() mock_openai_class.return_value = mock_client mock_response = Mock() mock_response.choices = [Mock()] mock_response.choices[0].message = Mock() mock_response.choices[0].message.content = TEST_OPENAI_CHAT_RESPONSE_CONTENT mock_client.chat.completions.create.return_value = mock_response # Mock the gradio request mock_gradio_request = Mock() mock_gradio_request.session_hash = TEST_GRADIO_SESSION_HASH # Call the function result = generate_prompt(mock_gradio_request) assert result == TEST_OPENAI_CHAT_RESPONSE_CONTENT