/
cppv
/
hackathon13
Обзор
Документация
Войти
/
cppv
/
hackathon13
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/test_flask_app.py
80 строк
3 KB
cppv
hackathon13
25 май 2025, 11:54
25 май 2025, 11:54
8af8c2d
Код
Авторство
О чём код?
import unittest from unittest.mock import patch, MagicMock import sys import os import json # добавляем путь чтоб работало sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from app.main import app class TestFlaskApp(unittest.TestCase): """ тесты для приложения на фласке """ def setUp(self): """ подготовка к тестам """ app.config['TESTING'] = True app.config['WTF_CSRF_ENABLED'] = False self.client = app.test_client() @patch('app.main.initialize_components') def test_index_route(self, mock_init): """ проверяем главную страницу """ response = self.client.get('/') # проверяем что все ок self.assertEqual(response.status_code, 200) # смотрим что на странице есть нужный текст self.assertIn(b'LangChain', response.data) @patch('app.main.assistant') def test_ask_route(self, mock_assistant): """ тестим страницу с вопросами """ # подменяем ответ на тестовый mock_assistant.direct_chat.return_value = "Тестовый ответ" # отправляем тестовый запрос response = self.client.post( '/ask', data=json.dumps({'question': 'Тестовый вопрос'}), content_type='application/json' ) # должно быть 200 self.assertEqual(response.status_code, 200) # проверяем что пришел правильный ответ data = json.loads(response.data) self.assertEqual(data['response'], "Тестовый ответ") # проверяем что вызвали с теми параметрами что надо mock_assistant.direct_chat.assert_called_once() args, kwargs = mock_assistant.direct_chat.call_args self.assertEqual(args[0], "Тестовый вопрос") def test_clear_history_route(self): """ тест очистки истории """ # делаем запрос response = self.client.post('/clear_history') # проверяем код ответа self.assertEqual(response.status_code, 200) # смотрим что вернулось ок data = json.loads(response.data) self.assertEqual(data['status'], "success") if __name__ == '__main__': unittest.main()