diff --git a/core/tests/test_summarize.py b/core/tests/test_summarize.py new file mode 100644 index 0000000..fd13a29 --- /dev/null +++ b/core/tests/test_summarize.py @@ -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() \ No newline at end of file