35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
Тесты для модуля проверки орфографии (только логика парсинга, без реального вызова LLM).
|
||
"""
|
||
|
||
import pytest
|
||
from unittest.mock import AsyncMock, MagicMock
|
||
from core.functions.check_spelling import check_spelling
|
||
|
||
|
||
@pytest.mark.asyncio
|
||
async def test_spelling_no_errors():
|
||
"""
|
||
Тест: если ошибок нет, возвращается пустой словарь.
|
||
"""
|
||
# Создаём мок бота с минимальными настройками
|
||
bot = MagicMock()
|
||
bot.ai_prompts = {'spellcheck': 'Ты — корректор...'}
|
||
bot.config = MagicMock()
|
||
bot.config.chunk_size_tokens = 200
|
||
bot.config.overlap_tokens = 50
|
||
bot.config.chunking_approx_chunk_chars = 500
|
||
bot.config.chunking_approx_overlap_chars = 100
|
||
|
||
# Мокаем giga.chat, чтобы он возвращал ответ без исправлений
|
||
bot.giga = AsyncMock()
|
||
bot.giga.chat.return_value = "[CORRECTED]\nТекст без ошибок\n[/CORRECTED]\n[CHANGES]\n[/CHANGES]"
|
||
|
||
replacements, changes = await check_spelling(
|
||
bot=bot,
|
||
original_text="Текст без ошибок",
|
||
original_path="/tmp/test.docx"
|
||
)
|
||
assert replacements == {}
|
||
assert changes == [] |