Редактировать test_expand_query.py

This commit is contained in:
Markov Andrey
2026-06-30 10:35:11 +00:00
parent 77175003e4
commit 85823207b2

View File

@@ -0,0 +1,91 @@
# -*- coding: utf-8 -*-
"""
Тесты для модуля расширения запроса.
Проверяем, что функция корректно добавляет синонимы и ключевые слова.
"""
import pytest
from core.functions.expand_query import expand_query, _expand_cache
@pytest.mark.asyncio
async def test_expand_success(mock_giga, mock_bot_config, sample_prompt_expand):
"""
Тест: успешное расширение запроса.
"""
mock_giga.chat.return_value = "OEE общая эффективность оборудования"
result = await expand_query(
giga=mock_giga,
query="OEE",
prompt_text=sample_prompt_expand,
bot_config=mock_bot_config
)
assert result == "OEE общая эффективность оборудования"
mock_giga.chat.assert_called_once()
@pytest.mark.asyncio
async def test_expand_no_change(mock_giga, mock_bot_config, sample_prompt_expand):
"""
Тест: если расширенный запрос совпадает с исходным, возвращается исходный.
Предварительно очищаем кэш, чтобы мок отработал корректно.
"""
# Очищаем кэш перед тестом, чтобы предыдущий вызов не влиял
_expand_cache.clear()
mock_giga.chat.return_value = "OEE" # ответ не изменился
result = await expand_query(
giga=mock_giga,
query="OEE",
prompt_text=sample_prompt_expand,
bot_config=mock_bot_config
)
assert result == "OEE"
@pytest.mark.asyncio
async def test_expand_empty_prompt(mock_giga, mock_bot_config):
"""
Тест: если промпт пуст, возвращается исходный запрос без вызова LLM.
"""
result = await expand_query(
giga=mock_giga,
query="О чём документ?",
prompt_text="", # пустой промпт
bot_config=mock_bot_config
)
assert result == "О чём документ?"
mock_giga.chat.assert_not_called()
@pytest.mark.asyncio
async def test_expand_cache(mock_giga, mock_bot_config, sample_prompt_expand):
"""
Тест: проверка кэширования расширения.
"""
# Очищаем кэш перед тестом
_expand_cache.clear()
mock_giga.chat.return_value = "5S сортировка соблюдение порядка"
# Первый вызов
result1 = await expand_query(
giga=mock_giga,
query="5S",
prompt_text=sample_prompt_expand,
bot_config=mock_bot_config
)
assert result1 == "5S сортировка соблюдение порядка"
assert mock_giga.chat.call_count == 1
# Второй вызов из кэша
result2 = await expand_query(
giga=mock_giga,
query="5S",
prompt_text=sample_prompt_expand,
bot_config=mock_bot_config
)
assert result2 == "5S сортировка соблюдение порядка"
assert mock_giga.chat.call_count == 1