Редактировать test_expand_query.py
This commit is contained in:
91
tests/test_expand_query.py
Normal file
91
tests/test_expand_query.py
Normal 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
|
||||
Reference in New Issue
Block a user