Add new file
This commit is contained in:
58
core/tests/test_summarize.py
Normal file
58
core/tests/test_summarize.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Тесты для модуля суммаризации документа.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from core.functions.summarize_document import summarize_document
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_summarize_success(mock_giga, mock_bot_config):
|
||||
"""
|
||||
Тест: успешная суммаризация.
|
||||
"""
|
||||
mock_giga.chat.return_value = "Краткое содержание документа: ... [Суммаризация документа: test.docx]"
|
||||
|
||||
result = await summarize_document(
|
||||
giga=mock_giga,
|
||||
text="Длинный текст документа...",
|
||||
title="test.docx",
|
||||
prompt_text="Ты — эксперт по суммаризации...",
|
||||
bot_config=mock_bot_config
|
||||
)
|
||||
assert "Краткое содержание" in result
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_summarize_empty_prompt(mock_giga, mock_bot_config):
|
||||
"""
|
||||
Тест: при пустом промпте возвращается сообщение об ошибке.
|
||||
"""
|
||||
result = await summarize_document(
|
||||
giga=mock_giga,
|
||||
text="Текст",
|
||||
title="doc.docx",
|
||||
prompt_text="",
|
||||
bot_config=mock_bot_config
|
||||
)
|
||||
assert "Не удалось загрузить промпт" in result
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_summarize_long_text(mock_giga, mock_bot_config):
|
||||
"""
|
||||
Тест: текст обрезается до max_chars.
|
||||
"""
|
||||
mock_giga.chat.return_value = "Суммаризация..."
|
||||
long_text = "a" * 10000 # 10 000 символов
|
||||
|
||||
result = await summarize_document(
|
||||
giga=mock_giga,
|
||||
text=long_text,
|
||||
title="test.docx",
|
||||
prompt_text="Ты — эксперт...",
|
||||
bot_config=mock_bot_config
|
||||
)
|
||||
# Проверяем, что chat был вызван (значит, обрезка прошла без ошибок)
|
||||
mock_giga.chat.assert_called_once()
|
||||
Reference in New Issue
Block a user