Add new file
This commit is contained in:
91
core/tests/test_expand_query.py
Normal file
91
core/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