File size: 1,637 Bytes
c1b16e4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import unittest
from unittest.mock import patch, MagicMock
from app import processar_texto, chat_inteligente
class TestIntegration(unittest.TestCase):
@patch('app.nlu.analyze')
def test_processar_texto_mock(self, mock_analyze):
# Configurar o mock para o Watson NLU
mock_resumo = {'summarization': {'text': 'Este é um resumo.'}}
mock_topicos = {'keywords': [{'text': 'ia'}, {'text': 'tecnologia'}]}
mock_classificacao = {'categories': [{'label': '/technology'}]}
mock_analyze.side_effect = [
MagicMock(get_result=lambda: mock_resumo),
MagicMock(get_result=lambda: mock_topicos),
MagicMock(get_result=lambda: mock_classificacao)
]
resumo, topicos, classificacao = processar_texto("Texto de teste com tamanho suficiente.")
self.assertEqual(resumo, "Este é um resumo.")
self.assertIn("ia", topicos)
self.assertIn("/technology", classificacao)
@patch('app.obter_iam_token')
@patch('app.requests.post')
def test_chat_inteligente_mock(self, mock_post, mock_token):
mock_token.return_value = "fake_token"
mock_response = MagicMock()
mock_response.status_code = 200
mock_response.json.return_value = {
'choices': [{'message': {'content': 'Resposta mockada da IA.'}}]
}
mock_post.return_value = mock_response
resposta = chat_inteligente("Qual o tema?", "O documento fala sobre IA.")
self.assertEqual(resposta, "Resposta mockada da IA.")
if __name__ == "__main__":
unittest.main()
|