import unittest from unittest.mock import patch, MagicMock from chatgpt_telegram_inference_bot import ChatGPTTelegramInferenceBot class TestChatGPTTelegramInferenceBot(unittest.TestCase): def setUp(self): self.bot = ChatGPTTelegramInferenceBot() @patch('chatgpt_telegram_inference_bot.OpenAI') def test_get_chat_response(self, MockOpenAI): mock_ai = MockOpenAI.return_value mock_ai.chat.completions.create.return_value = MagicMock() messages = [{"role": "user", "content": "Hello"}] response = self.bot.get_chat_response(messages) self.assertIsNotNone(response) @patch('chatgpt_telegram_inference_bot.OpenAI') def test_handle_message(self, MockOpenAI): mock_ai = MockOpenAI.return_value mock_ai.chat.completions.create.return_value = MagicMock(choices=[MagicMock(message={"content": "response content"}, finish_reason='stop')]) user_id = "user123" user_message = "Hello" response = self.bot.handle_message(user_id, user_message) self.assertIsNotNone(response) def test_switch_model(self): initial_model = self.bot.model self.bot.switch_model() self.assertNotEqual(initial_model, self.bot.model) # Additional testing for error cases and edge cases if __name__ == '__main__': unittest.main()