"""
Test semplificati per il bot Telegram IRIS
"""
import pytest
from unittest.mock import Mock, patch
from src.telegram_bot.bot import IRISBot, create_bot_application
from src.llm_core.prompts.types import PromptType
class TestIRISBotSimple:
"""Test semplificati per la classe IRISBot"""
def test_bot_initialization(self):
"""Test inizializzazione bot"""
iris_bot = IRISBot()
assert iris_bot.iris_client is not None
assert isinstance(iris_bot.user_sessions, dict)
assert isinstance(iris_bot.user_providers, dict)
assert isinstance(iris_bot.user_prompts, dict)
def test_user_settings_management(self):
"""Test gestione impostazioni utente"""
iris_bot = IRISBot()
user_id = 123
# Test inizializzazione utente
iris_bot.user_providers[user_id] = "openai"
iris_bot.user_prompts[user_id] = PromptType.BUSINESS_ASSISTANT
assert iris_bot.user_providers[user_id] == "openai"
assert iris_bot.user_prompts[user_id] == PromptType.BUSINESS_ASSISTANT
# Test cambio provider
iris_bot.user_providers[user_id] = "anthropic"
assert iris_bot.user_providers[user_id] == "anthropic"
class TestBotCreation:
"""Test per la creazione del bot"""
@patch('src.telegram_bot.bot.settings')
def test_create_bot_application_success(self, mock_settings):
"""Test creazione bot con successo"""
mock_settings.TELEGRAM_BOT_TOKEN = "test_token"
application, iris_bot = create_bot_application()
assert application is not None
assert isinstance(iris_bot, IRISBot)
@patch('src.telegram_bot.bot.settings')
def test_create_bot_application_no_token(self, mock_settings):
"""Test creazione bot senza token"""
mock_settings.TELEGRAM_BOT_TOKEN = None
with pytest.raises(ValueError, match="TELEGRAM_BOT_TOKEN not configured"):
create_bot_application()
if __name__ == "__main__":
pytest.main([__file__])